0

こんにちは、コメント システムで簡単な Web サイトを作成しています。ユーザーは、ソーシャル ネットワーク ID (FB、Twitter など) でログインするか、サイトに登録してコメントすることができます (これに FB アカウントを使用しないユーザーがいます)。2 つのテーブルを使用できます (1 つは HybridAuth 用、もう 1 つはローカル ユーザー テーブル用)。今私の問題は、そのように機能するようにテーブルとシステム全体をどのように設計するかです。基本的に、私の問題は次のように壊れる可能性があります。

では、一般的なアプローチ (多くのサイトが disqus、FB、twitter などを使用しているため) はどのようなものでしょうか?

ここSOまたは他の場所にリンクがある場合は、指摘していただければ幸いです。

4

1 に答える 1

1

次の 2 つの方法があります。

#1 独占 FK

here で説明されているように、FK とその上に CHECK 制約の両方があり、そのうちの 1 つが NULL であることを確認します

一部の DBMS (特に MySQL) は CHECK 制約を適用しないことに注意してください。その場合、トリガーまたはクライアント コードから実行する必要があります。

#2 継承

共通テーブルから両方の種類のユーザーを「継承」してから、共通テーブルのみを参照します。これは、「コメント可能」、「タグ付け可能」、「好感が持てる」コンテンツに対してどのように行うことができるかの例です。同様の原則をユーザーに適用できます。

于 2013-12-03T02:10:24.053 に答える