@Filarru

Могут ли две сущности-потомка от одной сущности-родителя пересекаться в различных вариациях?

Оранжевые таблицы - независимые сущности.
Синие таблицы - зависимые сущности.
Сплошная линия - идентифицирующая связь.
Пунктирная линия - неидентифицирующая связь.

Возникают вопросы:
1. Не будет ли проблем при таком пересечении сущностей-потомков?
2. Есть ли проблемы с точки зрения нормализации?
3. Есть ли проблемы с точки зрения логической структуры БД?

Задуматься заставляют таблицы "Товар в магазине" и "Товар на складе" с включением FK "Зона поставок" в качестве неключевого атрибута.
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Вопрос изрядно холиварный.
То как сделали вы - имеет право на существование, но лично я бы по умолчанию сделал вместо "товар в магазине" и "товар на складе" одну таблицу вида:
- тип где (магазин, склад)
- код где
- код товара

Не забыть повесить на эти 3 поля уникальный индекс, а лучше даже сделать составной primary из 3х полей, без отдельного поля.

Из очевидных преимуществ:
- проще расширять (завтра у вас еще какой-нибудь "транзитный склад" появится)
- проще строить отчеты всякие по остаткам

PS Меня больше смущает таблица "зона поставок" - что это такое, почему она связывает и магазин и склад и товар?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы