Хранение нескольких идентификаторов сотрудников в одном столбце данных

StackOverflow https://stackoverflow.com/questions/756370

  •  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, и он получит все продукты в этом порядке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top