Все нормальные формы 1,2,3, BCNF, 4,5 были определены только для отношений без нулей. Фактически, большинство из них были определены еще до того, как были изобретены нули (и помните, что «нули» Кодда в любом случае отличались от нулей SQL). Это не проблема, потому что нулевые значения всегда могут быть разработаны без потери информации.

я есть основная концепция - почтовое сообщение и две производные концепции:

сгенерированные по шаблону электронные письмаэлектронные письма в свободной форме

Я думаю о создании трех таблиц для хранения данных, и мне нужно ваше мнение по этому вопросу (если это плохо, если это хорошо, как это можно улучшить и так далее):

MailMessagesId [int]личность (автоинкремент) PKАдрес [varchar (300)]IsTemplateBased [бит]TemplateId [int]обнуляемым FKMailBodyId [int]обнуляемым FK (TemplateId должен быть нулевым, а MailBodyId должен быть ненулевым или наоборот)StatusId [tinyint]FKMailParamsMailMessageId [int]ПФКParamNumber [tinyint]Значение [nvarchar (4000)]MailBodyMailMessageId [int]ПФКFromUsername [varchar (30)]FromDomainId [tinyint]FKPlainTextContent [nvarchar (max)]HtmlContent [nvarchar (max)]обнуляемым

Несколько объяснений здесь по порядку:

Я хотел бы, чтобы дизайн был максимально нормализованБитовый (логический) столбец IsTemplateBased может быть опущен, а характер почтового сообщения можно определить из TemplateId и / или MailBodyId (т. Е. Если TemplateId не равен NULL, то он основан на шаблонах), но я думаю, что это ненормализация (?) может быть полезным для производительностиПричина наличия двух столбцов (FromUsername и FromDomainId) состоит в том, чтобы обеспечить соблюдение правил проверки работоспособности электронной почты - я не считаю наличие одного столбца (FromAddress) подходящим

Сказав все это, что вы думаете, дорогие читатели?

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

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