ショッピングカート機能が複数のベンダーと複数のクライアントを同じデータベースに格納する従来のマルチテナントアプリケーションを改訂しています。あるベンダーの一部のクライアントは、別のベンダーのクライアントである場合があります。一部のベンダーは、実際には別のベンダーのクライアントである可能性があります。
現在、主キーを持つスーパータイプ「party」party_ID
のテーブル、主キーを持つサブタイプ「company」のテーブルcompany_ID
(参照party_ID
)、および主キーを持つ「vendor」の役割のテーブルvendor_ID
(参照company_ID
)があります。また、との複合主キーを持つジャンクションテーブル「client」もvendor_ID
ありparty_ID
ます。
私の質問は、「order」テーブルがベンダーテーブルとクライアントテーブルをどのように参照する必要があるかということです。私の最初の考えは、テーブルにはの複合主キーが必要でありvendor_ID
、client_ID
(order_ID
テーブルorder_ID
全体で自動インクリメントすることも、ごとにシーケンシャルにすることもできますvendor_ID + client_ID
)、キーを構成する3つの属性があったため、これは少し厄介なようでした...
誰かがこのトピックについて何か洞察を持っていますか?ほとんどの「ショッピングカート」は単一のベンダーのみを扱っているため、注文表にclient_ID
は外部キーとしてリストされているだけです。
ありがとう!