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