Хранение нескольких идентификаторов сотрудников в одном столбце данных
-
09-09-2019 - |
Вопрос
Веб-приложение пишется на классическом ASP с серверной частью MSSQL.На этой конкретной странице администратор может выбрать одного или любого/всех сотрудников, которым будет назначен проект.Я пытаюсь найти простой способ хранить идентификаторы сотрудников назначенных ему людей в одном столбце.
Список сотрудников генерируется из другой таблицы и может быть динамическим (увольнение или найм), поэтому я хочу, чтобы программа была достаточно гибкой, чтобы ее можно было изменять в зависимости от изменений в таблице.
По сути, нужно знать, как назначить нескольких людей на проект, который позже можно будет вызвать на другой странице или из другого запроса.
Извините за n00bish вопрос, но спасибо!
Решение
Вам нужно создать еще одну таблицу, в которой будут храниться эти значения, например.Таким образом, эта новая таблица будет хранить по одной строке для каждого идентификатора, а затем будет связана с исходной записью с исходным идентификатором записи.
Другие советы
Не храните несколько идентификаторов в одном столбце! Создайте еще одну таблицу с первичным ключом существующей таблицы и одним идентификатором, который вы хотите сохранить.Затем вы можете вставить несколько строк в эту новую таблицу, создав связь 1:m (один ко многим).Например, давайте посмотрим на таблицу заказов:
order:
order_id
order_date
и у меня есть таблица продуктов...
product:
product_id
product_name
Теперь вы могли бы пойти по пути добавления столбца в заказ, который позволит перечислять продукты в заказе, но это было бы плохим тоном.Вместо этого вы хотите что-то вроде..
order_item:
order_item_id
order_id
product_id
quantity
unit_price
Затем вы можете выполнить объединение, чтобы получить все продукты для определенного заказа...
select
product.*
from orders
inner join order_item on order_item.order_id = order.order_id
inner join product on product.product_id = order_item.product_id
where orders.order_id = 5
Вот пример order_id, равный 5, и он получит все продукты в этом порядке.