0

CustomersVendorsが存在するシステム用のデータベースを設計する必要がありますが、両方とも、すべてのユーザーが customer または vendor であるUsersというエンティティに関連しています。問題は、ベンダーが顧客ではない他のエンティティに関連していることです。どうすればそのようなデータベースを設計できますか?

4

3 に答える 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 に答える