2

私はmysqlを使用しており、作成しているWebサイトのスキーマに取り組んでいます。ユーザー、コミュニティ(ユーザーのグループ)、アクティビティ(1人以上のユーザーまたはコミュニティが参加しているユーザーまたはコミュニティのいずれかによって作成された計画)、およびrsvps(ユーザー/コミュニティの日付を含む)があるため、少し行き詰まっていますアクティビティにrsvped)。ユーザー、コミュニティ、およびアクティビティのテーブルを作成しましたが、rsvpsで立ち往生しています。

私が抱えている問題は、理想的にはrsvpsテーブルに次のようなものがあるということです。

USER / COM ID ACT_ID DATE Goin?
U 234217/1/12真
U 1342 1 7/2/12 false
U 2842 1 7/1/12 true
C 5342 1 7/1/12 false

IDは、USER / COM属性の値に応じて、ユーザーテーブルまたはコミュニティテーブルのいずれかに対する外部キー制約です。今、私はこのようにそれを行うことは不可能であるとかなり確信しているので、私はあなたがこれについてどうするのか疑問に思っています。

最後の注意:rsvpテーブルだけでなく、ユーザーまたはコミュニティのいずれかを一緒に使用できるようにする必要がある他のテーブルがいくつかあるので、rsvpテーブルのアイデアはできるだけ単純にすることをお勧めします。

さらに情報が必要な場合はお知らせください、ありがとうございます:)

4

2 に答える 2

0

私はむしろ外部キーが好きなので、このようなものを使用します

RSVP_ID   USER_ID    COM_ID   ACT_ID     DATE     Goin?
1         2342       NULL     1          7/1/12   true
2         1342       NULL     1          7/2/12   false
3         2842       NULL     1          7/1/12   true
4         NULL       5342     1          7/1/12   false

RSVP_ID は、自動インクリメントのプライマリ キーです。user_id+act_id と com_id+act_id に 2 つの一意のキーを配置できます。

このようにして、外部キーを適切に機能させることができます。その上、私は常に異なる内容のコラムを持っています...

于 2012-07-22T02:14:04.850 に答える
0

ユーザーとコミュニティをつなぐ別のテーブルを作成します。

ID    USER_OR_COMMUNITY_ID     IS_USER
1     32933                    true
2     2398                     false
3     23278                    false
4     923                      false

これは、ユーザーとコミュニティーが同様のタイプの情報を持っている可能性があるため、役立ちます。例として、ユーザーには名前 (ユーザー名) があり、コミュニティもあります。登録日、アバターなども含まれる場合があります。たとえば、id、user_or_community_id、is_user、name、date_registred などの列を持つテーブルを作成できます。次に、ユーザーに固有のすべてのデータがユーザー テーブルに格納され、コミュニティについても同様です。

よくわかりませんが、いい質問です。これは少し複雑になるかもしれません。

于 2012-07-22T01:50:58.100 に答える