在一列数据中存储多个员工ID

1 database data-storage

Web应用程序是用经典ASP编写的,带有MSSQL后端.在此特定页面上,管理员可以选择1个或任何/所有员工来分配项目.我试图找出一种简单的方法来将分配给它的人员的员工ID存储在一列中.

员工列表是从另一个表生成的,可以是动态的(解雇或雇用),因此我希望程序足够灵活,可以根据这些表更改进行更改.

基本上需要知道如何将多个人分配给一个项目,以后可以在不同的页面或不同的查询中调用.

抱歉n00bish的问题,但谢谢!

Ada*_*son 11

不要在一列中存储多个ID!使用现有表的主键和要存储的单个ID创建另一个表.然后,您可以在此新表中插入多行,从而创建1:m(一对多)关系.例如,让我们看一下订单表:

order:
    order_id
    order_date
Run Code Online (Sandbox Code Playgroud)

我有一个产品表......

product:
    product_id
    product_name
Run Code Online (Sandbox Code Playgroud)

现在,你可以开始添加一个列来订购,让你列出订单中的产品,但那将是糟糕的形式.你想要的是......

order_item:
    order_item_id
    order_id
    product_id
    quantity
    unit_price
Run Code Online (Sandbox Code Playgroud)

然后,您可以执行连接以获取特定订单的所有产品...

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
Run Code Online (Sandbox Code Playgroud)

这是一个示例order_id为5,这将获得该订单中的所有产品.