зачем связывать таблицы базы данных? - PullRequest
0 голосов
/ 12 февраля 2012

У меня есть модель БД, которая использует несколько таблиц для хранения данных бизнес-логики;одна из таблиц включает в себя таблицу пользователей, которая содержит идентификатор пользователя.Код считывает данные из этих таблиц и генерирует строку json, которая используется в приложении.Чтобы избежать необходимости повторять запросы и заново создавать строку json, я сохраняю строку json в табличном вызове JsonCache, который имеет только 2 столбца: UserID и JsonCacheWork.У каждого пользователя есть несколько записей JsonCacheWork (записи добавляются сами в результате взаимодействия с пользователем).

На данный момент в моей диаграмме базы данных нет связи между таблицей User и таблицей JsonCache.Кажется, все работает нормально.

Зачем мне нужно / нужно добавлять отношения между двумя таблицами и каковы преимущества, если они есть, в сохранении моей диаграммы БД как есть.

Спасибообъяснение.

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Вы добавляете связь между таблицами, чтобы сообщить системе управления базой данных, что записи в этих двух таблицах связаны.DMS может навязать эту связь, что означает, что вы не ошибетесь, добавив запись в таблицу JsonCache с UserId, который не существует.

Кроме того, ограничение внешнего ключа можно использовать для автоматического удаления записей.в одной таблице, когда связанная запись в другой таблице удаляется (каскад удаляет).Поэтому, когда вы удаляете пользователя, DMS удалит его запись в JsonCache для вас.

Sql Server - это реляционная база данных , а отношения между таблицами являются ключевой частью схемы базы данных.Они помогают поддерживать целостность данных.

1 голос
/ 12 февраля 2012

Если бы между двумя объектами существовала связь «многие ко многим», вам бы пришлось иметь таблицу соединения между ними.Я бы сказал, что поскольку пользователь и JSON один на один, я бы задал вопрос об использовании двух отдельных сущностей.Я бы поместил JSON в таблицу пользователей и просто запросил его по идентификатору пользователя.Я не вижу причины для отдельной таблицы с двумя столбцами только для JSON.

Я мог бы передумать, если бы у JSON был срок годности: срок годности и срок годности для одного пользователя и т. Д..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...