Я не нашел здесь статей, близких к тому, что я искал. Я прочитал несколько тем, но они не сказали слишком много о базе данных и нормализации. Я узнал о нормализации из PHP и MySql для книги Dynamic Web Sites.Создайте базу данных mysql и используйте нормализацию
Я привел пример и, потому что у меня нет профессора, чтобы исправить меня, мне нужна ваша помощь, чтобы рассказать мне, прав я или нет.
Моего примера для базы данных шутки с 4-мя столов: пользователей Страница Категории (анекдоты, короткие фильмы и т.д.) Подкатегория (блондинки, полиция, понижает, охотники и т.д.)
Это результат после того, как я применил все три формы нормализации:
CREATE TABLE `categories` (
`category_id` SMALLINT NOT NULL AUTO_INCREMENT,
`category` VARCHAR(30) NOT NULL,
PRIMARY KEY (`category_id`),
UNIQUE KEY `category` (`category`)
) ;
CREATE TABLE `subcategories` (
`subcategory_id` SMALLINT NOT NULL AUTO_INCREMENT,
`category_id` SMALLINT NOT NULL,
`subcategory` VARCHAR(30) NOT NULL,
PRIMARY KEY (`subcategory_id`),
UNIQUE KEY `subcategory` (`subcategory`)
) ;
CREATE TABLE `pages` (
`id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
`category_id` SMALLINT UNSIGNED NOT NULL,
`subcategory_id` SMALLINT UNSIGNED NOT NULL,
`user_id` SMALLINT UNSIGNED NOT NULL,
`title` VARCHAR(100) NOT NULL,
`content_page` LONGTEXT NOT NULL,
`date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `category_id` (`category_id`),
KEY `creation_date` (`date_created`)
);
CREATE TABLE `users` (
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`type` ENUM('member','admin', 'superadmin') NOT NULL,
`username` VARCHAR(30) NOT NULL,
`email` VARCHAR(80) NOT NULL,
`pass` VARBINARY(32) NOT NULL,
`first_name` VARCHAR(20) NOT NULL,
`last_name` VARCHAR(40) NOT NULL,
`date_expires` DATE NOT NULL,
`date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`date_modified` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`user_id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ;
Это очень хороший совет. Спасибо. – dragon
Добро пожаловать! –