2017-12-15 11 views
0

私はこれまでに4つのテーブルを持っています。彼らの名前は次のとおりです。すべてのテーブルにuserの外部キーを使用する必要がありますか?

ユーザー、 ギャング、 gang_business、 gang_members、 gang_weapons

私は、「ユーザー」または「ギャング」の表のようにどちらかの主キーを使用するかどうかを把握しようとしています"gang_business"、 "gang_members"、 "gang_weapons"テーブルの外部キー。 「ギャング」テーブルには、ユーザーの主キーが外部キーとして格納されています。私はどちらが最善のルートかを理解しようとしています。あなたに最高のアドバイスとフィードバックをお願いします。ありがとう。

  • ユーザテーブル:(USER_ID、USER_NAME、USER_EMAIL、USER_PASSWORD)
  • ギャングテーブル:(gang_id、USER_ID、gang_name、gang_color、gang_idelogy)
  • gang_business:(business_id、USER_ID及び/又はgang_id、バー、レストラン、
    カジノ、など)
+0

あなたのデータをより良く表示したり記述したりできますか? –

+0

投稿を編集しました。 – BlackCoder

+0

このリンクをクリックすると、データベースの正規化が簡単に開始されます。データベースの問題に基づくアプリケーションの修正は非常にコストがかかるので、データベース構造を正しく取得するために必要な作業は後で行います。砂場や土台にビルドするようなものです。 https://www.essentialsql.com/get-ready-to-learn-sql-database-normalization-explained-in-simple-english/ –

答えて

0

のみギャングstersはgang_businessとgang_membersのメンバーになることができた場合、あなたはギャングテーブルのPKを使用する必要があります。これはスーパーグループであるため、ユーザーPKを使用すべきではありません。このスーパーグループのうち、ギャングテーブルはサブグループです。

+0

ギャングテーブルは、ギャングの名前と色やイデオロギーなどの他の属性のみで構成されています。ギャングのメンバーにgang_membersテーブルを使用します。伝統的なマフィアのギャングのようなものではありません。gang_membersはあなたが募集するAIであり、他のギャング(および募集されたAIメンバー)との戦いに使用されます。 。 – BlackCoder

+0

@BlackCoderコメントではなく、記事で明確にしてください。 – philipxy

1

ユーザーとギャングテーブル内の関係によって異なります。私はこのテーブルでそれを行うだろう

ユーザー:(ID、名前、電子メール、パスワード)

ギャング:(ID、名前、色、idelogy)

gang_members:(USER_ID 、gang_id)

user_weapons:(USER_ID、weapon_id)

gang_business:(gang_id、business_id)

武器:(ID、名前、...)

事業:(ID、名前、...)

I彼らは外部キーがあるだけプレフィックス列でしょう。

兵器はユーザーに属し、ビジネスはギャングに属しているとします。

関連する問題