Проект нормализации базы данных - одна или несколько таблиц

Должно ли это быть представлено в базе данных как 1 таблица или 3 таблицы? У меня и моего друга разные мнения на этот счет, поэтому я хотел бы увидеть общие взгляды на это. (Может быть, это должно быть голосование за любое решение?)

Create Table Order
// Basic fields of the table
 - ID (Primary key)
 - CustomerID  (integer, with a FK)
 - Quantity
 - ProductID  (integer, with a FK)

 // Then depending on user selection, either these fields need to be specified 
 // (could be factored out to a separate table):
 {
 - InternalAccountID (integer, with a FK)
 - InternalCompanyID (integer, with a FK)
 }

 // Or these (could be factored out to a separate table):
 {
 - ExternalAccountNumber (free text string)
 - ExternalCompanyName (free text string)
 - ExtraInformation (free text string)
 }
1 стол подход:Плюсы:производительность (одна вставка в отличие от двух, проверка FK, нет соединений)вероятно, занимает меньше места (дополнительные таблицы имеют накладные расходы + индексы + дополнительное поле идентификатора)один стол в отличие от трехвряд ли оправданно разделять на новые таблицы только для полей 2 + 3 (или что?)Минусы:Обнуляемые поляПотенциально дополнительный столбец типа (можно пропустить)Перерывы 3NF (?)

Плюсы и минусы любезно запрашиваются, а также личные мнения. :)

РЕДАКТИРОВАТЬ: Я попытался упростить пример, используя другие объекты, чем я использую, поэтому любые предложения по изменению модели мне не помогут. То есть сосредоточиться на технических аспектах больше, чем модель предметной области, пожалуйста.

Ответы на вопрос(6)

Ваш ответ на вопрос