Я полностью повторяю, что нормализация является критической, с тактической ненормализацией, которой необходимо следовать для обеспечения производительности или других причин ремонтопригодности. Однако, если вы ожидаете иметь больше, чем несколько таблиц, я хотел бы предложить одно предупреждение о нормализации, которое значительно облегчит вашу жизнь по мере роста количества таблиц.
Предостережение заключается в том, чтобы сделать первичный ключ для каждой таблицы одним числовым столбцом (соответствующий вашему виду БД). В академической нормализации идея состоит в том, чтобы объединить любые атрибуты (столбцы) объекта (таблицы), чтобы вы могли однозначно идентифицировать экземпляр того, что описано (строка), и вы можете получить многокомпонентный составной первичный ключ , Таким образом, каждый раз, когда вы переносите этот составной ключ как внешний ключ в другие таблицы, вы в конечном итоге дублируете эти несколько столбцов в каждой таблице, которая ссылается на него. Это может работать для вас, если у вас есть только полдюжины столов. Но это быстро разваливается, когда вы идете намного больше этого.
Таким образом, вместо составного первичного ключа с несколькими столбцами используйте последовательный числовой первичный ключ, даже если этот подход противоречит некоторым строгим правилам нормализации.