1

Web アプリは、MSSQL バックエンドを使用して従来の ASP で作成されています。この特定のページで、管理者はプロジェクトを割り当てる従業員を 1 人または一部/全員を選択できます。割り当てられた従業員の従業員 ID を 1 つの列に格納する簡単な方法を見つけようとしています。

従業員のリストは別のテーブルから生成され、動的 (解雇または雇用) になる可能性があるため、これらのテーブルの変更に基づいてプログラムを柔軟に変更できるようにしたいと考えています。

基本的に、後で別のページまたは別のクエリから呼び出すことができるプロジェクトに複数の人を割り当てる方法を知る必要があります。

n00bish の質問で申し訳ありませんが、ありがとうございます。

4

2 に答える 2

11

1 つの列に複数の ID を格納しないでください。既存のテーブルの主キーと、保存する単一の ID を使用して、別のテーブルを作成します。次に、この新しいテーブルに複数の行を挿入して、1:m (1 対多) の関係を作成できます。たとえば、注文テーブルを見てみましょう。

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 の例です。これにより、その注文のすべての製品が取得されます。

于 2009-04-16T14:30:26.457 に答える
3

などの値を格納する別のテーブルを作成する必要があります。したがって、この新しいテーブルは ID ごとに 1 つの行を格納し、元のレコード ID を使用して元のレコードにリンクします。

于 2009-04-16T14:31:38.560 に答える