2016-05-27 3 views
0

注文書用のテーブルがあるとします。ある顧客が多くの製品を購入する可能性があります。私はこれらのすべての製品と関連する価格を請求書形式などの単一レコードに保管する必要があります。1つのセルに複数の値を格納するSQL Serverでテーブルを作成するにはどうすればよいですか?

+4

Do not do this !!!!!!!!購入した各製品を別々の行に保管しますが、注文番号のようなものを同じキーに割り当ててください。 –

+0

M.Aliはそれが本当に悪いデザインになると言いました。特定の注文のみを更新する必要がある場合はどうしますか? – bmsqldev

答えて

0

あなたは、DBの設計を変更することができた場合は、発注書テーブルから外部キーとしてPO_Idを持ってPO_productsと呼ばれる別のテーブルを作成することを好みます。これはより柔軟で、あなたの要件に合ったデザインになります。

何らかの理由で1つのセルに格納するのが難しい場合(私は反復処理がうまくいかない)、XMLTypeを使用して、すべての製品情報をXMLとして保存できます。

注:デザインが悪いだけでなく、XMLとしてデータを保存するためのパフォーマンスが大幅に低下します。

0

これは、顧客と製品の間のn-n関係の典型的な例です。

0人のカスタマーが0人のN製品を、1人のお客様が0人からN人のお客様で購入できます。ジャンクション表を使用してすべての発注書を保管したいとします。

この接続テーブルには、購入のID、顧客のID、および製品のIDが含まれている場合があります。

https://en.wikipedia.org/wiki/Many-to-many_(data_model)

関連する問題