В отличие от Front-Side-программирования, рефакторинг структуры базы данных после ее использования является не только болезненным, но и непрактичным.
Я настоятельно рекомендую получить структуру задней части прямо вперед. Хорошая новость заключается в том, что третью нормальную форму, как правило, нетрудно достичь. На самом деле, когда вы немного попрактикуетесь, становится почти второй натурой думать о данных в этих терминах.
Третья нормальная форма по существу утверждает, что каждый компонент отдельной записи в таблице должен быть уникальным для ключа этой записи. СЧИТАЮТ:
tblPerson:
PersonID PK
Фамилия
Имя
Второе имя
дата рождения
ПЛА
Источник доходов
IncomeAmount
Таблица, как определено выше, НЕ представлена в трех нормальных формах, поскольку источник дохода не уникален для каждого случая присутствия человека в таблице и фактически может меняться в течение жизни этого человека. Вместо этого можно структурировать вышесказанное (в чрезмерно упрощенном виде) следующим образом:
tblPerson
PersonID PK
Фамилия
Имя
Второе имя
дата рождения
ПЛА
tblPersonIncome
PersonIncomeID PK
PersonID FK tblPerson
IncomeSourceID FK tblIncomeSource
Сумма дохода
AsOfDate
tblIncomeSource
IncomeSourceID
IncomeSource
Обратите внимание, что некоторые будут спорить о том, что я использовал автоматическое увеличение полей идентификатора выше - хотя они не нарушают 3-ю обычную форму, они также не используют натуральный ключ.
Если ваш бэкэнд правильно нормализован от прыжка, добавление или расширение ваших сущностей будет гораздо проще сделать в фуруре, и это окажет гораздо меньшее влияние на любой фронтэнд, который вы создаете до добавления.
В любом случае, спроектируйте правильно спереди на заднем торце, иначе страдание будет интенсивным, как только вы начнете катиться и вам понадобится внести структурные изменения позже. В противном случае это будет все равно, что заложить фундамент для вашего нового дома и планировать изменить план этажа в соответствии с вашими потребностями позже, при его строительстве.