CustomersとVendorsが存在するシステム用のデータベースを設計する必要がありますが、両方とも、すべてのユーザーが customer または vendor であるUsersというエンティティに関連しています。問題は、ベンダーが顧客ではない他のエンティティに関連していることです。どうすればそのようなデータベースを設計できますか?
質問する
437 次
3 に答える
0
他のエンティティは、ベンダーの ID を外部キーとして保存します。いずれにせよ、Vendors と Customers は同じテーブルに存在することはありません*ため、そのために同時に使用される可能性のある ID が 2 つにあるわけではありません。
また、追加するには、選択したDBで許可されている場合、ユーザーに必要な外部キーを追加/編集トリガーとして管理できます。そうすれば、これらの関連エンティティに使用されるベンダー ID が、顧客にリンクされたユーザー ID ではないことを確認できます。( ...WHERE userid NOT IN (SELECT userid FROM users WHERE customer = TRUE)
)
*顧客とベンダーは異なるプロパティ/フィールドを持っているため、同じテーブルにあるべきではありません。
于 2013-04-26T21:38:24.470 に答える
0
Vendors と Customers に User テーブルとの関係を持たせることができます。
user
===========
userId
name
vendor
===========
vendorId
companyName
userId
customer
===========
customerId
source
userId
次に、同じテーブルから顧客とベンダーの両方にリンクできますが、ユーザー テーブルで同じ共通データを共有できます。実際、顧客はベンダーになることもできます。
于 2013-04-26T23:00:14.623 に答える