Правильно ли я понять суть реляционных бд?

Сделал блог на PHP. В качестве бд использовал MySQL
В ходе разработки таблицы никак не связывал, то есть при добавлении нового поста, отдельным запросом добавляется сам пост, отдельным запросом изменяется кол-во постов юзера в таблице users, и отдельным запросом пост добавляется в таблицу модерации. Удаление аналогично, кучей запросов. Соответственно, нет целостности

Пару дней назад понял, что у меня не реляционная бд в итоге получилась, а получились просто не связанные таблицы. Правильно ли я пониманию, что "по хорошему" нужно чтобы при добавлении поста, все последующие действия производил не бекенд, а непосредственно сама бд?
  • Вопрос задан
  • 706 просмотров
Решения вопроса 1
@IgorNoskov
Связи между таблицами нужны в первую очередь для целостности данных. Например, можно сделать такую связь между таблицей пользователей и их постами, чтобы при удалении пользователя, база данных автоматически удаляла все его посты. Либо наоборот, сделать такую связь, что нельзя удалить пользователя, если есть посты от него. То есть связями можно создать защиту, которая гарантирует, что случайно не удалится какая-то запись.

То что у вас нет связей, это не значит, что у вас не реляционная база данных. Это определяется самой базой данных, а не вашими связями.

С помощью связей, автоматом у вас не получится при вставке или удалении записи обновить количество записей в другой таблице. Это нужно делать в запросе.

Update
Ещё связи помогают избежать ошибок, например, по ошибке никак не получится добавить пост в несуществующую категорию или удалить категории, в которой есть посты. Надеюсь поняли суть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы