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

时间:2009-04-16 14:27:24

标签: database data-storage

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

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

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

对于n00bish的问题感到抱歉,但谢谢!

2 个答案:

答案 0 :(得分:11)

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

order:
    order_id
    order_date

我有一张产品表...

product:
    product_id
    product_name

现在,您可以按照订单添加列的方式,让您列出订单中的产品,但这样做会很糟糕。你想要的是...... .. / / p>

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,这将按顺序获得所有产品。

答案 1 :(得分:3)

您需要创建另一个存储这些值的表,例如。因此,这个新表将为每个ID存储一行,然后使用原始记录ID链接回原始记录。