Следует ли учитывать нормализацию базы данных при создании моделей в Django?

#django #rdbms #database-normalization

#django #СУБД #база данных-нормализация

Вопрос:

Я новичок в Django и веб-фреймворках в целом, но довольно часто работал с СУБД. Зная, что каждый класс в моделях django сопоставляется с таблицей в базе данных, должны ли модели основываться на ERD, где таблицы нормализованы? Будет ли иметь значение нормальная форма в этом случае? Спасибо!

Ответ №1:

Предполагая, что вы используете серверную часть SQL (т. Е. Не Что-то вроде mongodb), тогда будут применяться те же рекомендации по нормализации. Помните, что django — это просто красивый способ доступа к базе данных, но в фоновом режиме вы все еще выполняете серию SQL-запросов, которые таким же образом выиграют от нормализации.

Тем не менее, большая часть бизнес-логики, которую вы обычно встраиваете в базу данных, теперь может обрабатываться django, поэтому можно обойтись слегка ненормализованной структурой, если это упрощает работу с ней. Подход, который я обычно использую, заключается в нормализации там, где имеет смысл избегать дублирования, и денормализации там, где нормализованная структура приведет к действительно сложным запросам (django не любит сложные запросы). Я обеспечиваю согласованность данных, используя приемники или перегружая save метод.