2014-01-03 6 views
1

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

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

ответ

0

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