дизайн базы данных: можно ли смешивать отношения «многие ко многим» и «многие к одному»?

Допустим, у меня есть две таблицы: FirstTable и SecondTable. У них отношение «один ко многим», поэтому SecondTable имеет внешний ключ: FirstTableID. Мне нужно перепроектировать базу данных, так как в (очень) редких случаях сущность SecondTable может принадлежать большему количеству (обычно 2-3) сущностей FirstTable, так что, очевидно, это слишком много. -много отношений.

У меня такой вопрос: отношения многие ко многим могут возникать очень редко (мы продаем больше копий системы, и в большинстве копий они всегда имеют отношения один ко многим, гарантировано). Было бы разумно сохранить внешний ключ и проверить в системе, если его значение равно 0, тогда система будет искать отношение в таблице «многие-многие»? Таким образом, в большинстве случаев мы могли бы избежать создания всей избыточной таблицы. Но не нарушит ли это какой-то принцип построения базы данных?


person user3156850    schedule 03.01.2014    source источник


Ответы (1)


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

person 10 cls    schedule 03.01.2014