Является ли «словарь SQL» лучшим способом справиться с этим? - PullRequest
0 голосов
/ 02 октября 2009

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

Это немного сбивает с толку, так что вот пример. Скажем, в нашей базе данных есть таблица, полная фильмов, у каждого из которых есть идентификатор, название, описание и т. Д. По какой-то причине босс хочет знать, кому нравится каждый фильм. Это было бы хорошо, если бы каждому фильму понравился бы только один человек, так как мы могли бы просто сделать еще один столбец в таблице, но в таком виде многим людям может понравиться один фильм, что делает его немного сложным. Теперь мы должны создать еще одну таблицу, в которой есть только два столбца: идентификатор фильма и идентификатор персонала.

Кажется, все это работает, но мне действительно любопытно, есть ли лучший способ или даже альтернативный способ проектирования базы данных. Я не могу думать об этом, но у меня есть чувство, что мы не следуем лучшим практикам. Если да, и это все хорошо, не стесняйтесь игнорировать этот вопрос, но я хотел бы услышать некоторые мнения от всех опытных профессионалов!

Пожалуйста, будьте осторожны со мной - я начал программировать на .net / SQL (с нуля в бизнес-среде!) Около 6 месяцев назад, поэтому я не очень разбираюсь в подобных вещах. :)

Ответы [ 2 ]

6 голосов
/ 02 октября 2009

Поскольку у вас есть сотрудники, которым может нравиться много фильмов, а каждый фильм может понравиться многим сотрудникам, у вас классические отношения "многие-многие".

Наилучшая практика, как вы описали, в SQL - это лучший и наиболее часто используемый способ хранения этих данных.

1 голос
/ 02 октября 2009

Да, это стандартная практика в ситуациях, когда существует отношение «многие ко многим» для создания таблицы отношений. Вы можете искать {sql отношения многие ко многим}, чтобы увидеть множество примеров.

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