Всем привет. Есть база данных с 5 таблицами. В первых 4-х таблицах по 2 поля(id,name),а последняя объединяет четыре поля name из предыдущих таблиц+своё поле.
Как узнать и проверить,что эта база данных правильна?
Да,реляционная.
У меня есть 5 таблиц:
1-ая: ID товара;товар
2-ая: ID города;город
3-ая: ID поставщика;поставщик
4-ая: ID фирмы;фирма
5-ая: ID поставки;товар;фирма;город;поставщик;количество
Они соответствуют 1-ой нормальной форме,т.к все строки различны,и не являются списками.
Т.к соответствует 1-ой нормальной форме,и имеет уникальный id,то значит и второй нормальной форме соответствует.
Правильно рассуждаю?
Вот с 3-ей формой немного непонятно. "Любой её не ключевой атрибут функционально зависит только от первичного ключа." Что значит функционально?
exzotikfruit_official: это значит, что нужно вместо "товар;фирма;город;поставщик;количество" писать их ID, и вешать туда Foreign Key, тогда все будет ок,и не будет проблем с "правильностью".
exzotikfruit_official: заказчику объяснить? или курсач пишите?
если заказчику, то 95% заказчиков согласятся с тем простым фактом что при подобной архитектуре целостность обеспечивается самой БД и его данные не потеряются (за исключением форс-мажоров типа краха винчестера или наводнения)
если курсач, то нужно будет подготовить более развернутый ответ, типа справочники (у Вас таблицы 1-4) отдельно, рабочие данные отдельно и ссылаются на справочники и тд и тп, тем самым БД соответствует 3НФ
Дмитрий Беляев: Курсач. Спасибо
А вот такой ещё вопрос: есть ли методы,при которых удаление родительского ключа не будет приводить к удалению дочерних из 5-ой таблицы? Это при ON DELETE CASCADE
exzotikfruit_official: Не сталкивался с каскадным удалением, по идее можно заменять все ForeignKeys на NULL
Создайте отдельный вопрос, думаю так люди знающие быстрее его увидят