Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нормализация таблиц
 
 автор: Digger   (22.01.2006 в 00:33)   письмо автору
 
 

Всем привет!

Тема не про mysql, но поскольку всё-таки касается баз данных, решил написать сюда...

Есть у меня БД, состоящая из нескольких таблиц. И что-то вдруг я задумался в каких нормальных формах они находятся? Открыл лекции по БД, почитал, понял, что даже под пытками не вспомню что означает фраза "неключевой атрибут нетранзитивно зависит от ключа". А все остальные фразы в лекциях ещё более запутаны. В связи с этим вопрос: не видел ли кто-нибудь статей, где простыми словами рассказано про нормализацию таблиц? И, если возможно, просвятите в какой всё-таки формы находятся следующие таблицы:

1. structure - поддерживает древовидную структуру.

Поля : id, parent, order, type.
id - первичный ключ, идентификатор элемента дерева; parent - идентификатор родительского элемента; order - порядковый номер элемента на одном из уровней дерева; type - поле типа enumeration.
По моим ощущениям это третья нормальная форма.

2. pages

Поля: id - совпадает с одним из id таблицы structure; dir - уникальное текстовое поле, title - просто текстовое поле.
Есть ощущение, что здесь даже вторая нормальная форма не выполняется, т.к. присутствуют два ключевых столбца.

Уважаемые, поправьте если что не так... Заранее благодарен.

   
 
 автор: cheops   (22.01.2006 в 14:36)   письмо автору
 
   для: Digger   (22.01.2006 в 00:33)
 

По-моему не хватает первичного ключа в таблице pages - для чего эта таблица предназначена?

PS Вообще в реальной жизни знание нормальных форм редко помогает - разработчику, как правило, сразу видно нужно нормализовать базу или денормализовать и как будет работать быстрее.

   
 
 автор: Digger   (22.01.2006 в 18:34)   письмо автору
 
   для: cheops   (22.01.2006 в 14:36)
 

structure поддерживает древовидную структуру страниц сайта. Причём существует 2 типа страниц: статичные - их характеристики хранятся в таблице pages (id,dir,title), и интерактивные(модули) их характеристики хранятся в отдельной таблице modules(id, dir, title, is_jury, is_user). Поскольку параметры статичных страниц и модулей отличаются, хранить всю информацию и о тех, и о других в таблице structure - неудобно, будет куча пустых полей, а это нехорошо. Вот я и разнёс их по разным таблицам. Роль первичного ключа и там, и там может играть поле id.

Наверное, было бы логичнее оставить в таблице structure поля id, parent, order, type, dir, title.
А дополнительные параметры, относящиеся к модулям вынести в отдельную табличку с полям id,is_jury,is_user. Но уже поздно, завтра сдавать :)

Про полезность/бесполезность нормализации согласен, но всё-таки было бы любопытно узнать в каких формах находятся вышеперечисленные таблицы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования