В настоящее время я занимаюсь разработкой базы данных для проекта, который веду в колледже, и был бы очень признателен за отзывы. По сути, идея проекта - создать базу пищевых производств, инвентаризацию пищевых продуктов. Я создал схему для базы данных, но не уверен, соответствует ли таблица продуктов требованиям 3NF.
Итак, моя таблица продуктов содержит p_id (первичный ключ), название продукта, тип продукта (например, пицца или десерт), страну, из которой он происходит, регион в этой стране и кому подходит продукт (например, веганский).
Итак, в основном, когда я разбиваю его, я чувствую, что регион зависит от страны, а тип зависит от имени? Прав ли я, предполагая это? Затем я мог бы разделить таблицу на 3 отдельные таблицы. 1, который будет содержать p_id, name, Country и еще один, который будет содержать Country, Region и третий, который будет содержать имя и тип. Будет ли это полностью нормализованная база данных до 4NF?
Вот моя схема:
Спасибо за ответ! Для подходящего_for я просто сохраню его простоту и сделаю только одну запись, так что это будет что-то вроде всеядного-> Пескетарианец-> eggetarian-> Vegiterian-> Vegan. Что касается других атрбуитов в таблице, как вы думаете, это до 3NF или 4NF?
Перенос региона на стол country_region определенно правильно. Я не уверен, что вы делаете с name и type. Будет ли несколько продуктов с одинаковым названием? И если да, то разве suitable_for не будет одинаковым для всех, так что он должен быть в таблице для конкретных имен?






suitable_for, вероятно, должен быть в другой таблице, поскольку продукт может подходить более чем для одного типа потребителей (веганский, кошерный, аллергия на арахис). Если у вас есть список, разделенный запятыми, вы нарушаете 1NF.