私は自分のアプリケーションのユーザー用にデータベーススキーマを構築していますが、ユーザータイプに応じてuserid値を設定しようと考えています。だから、 バイヤー:10001 19999への売り手:20001 29999への荷主:30001次 範囲をuseridに割り当てるのは良い方法ですか?
39999に、私はユーザーIDに一意の電子メールアドレスを割り当てる: Login_tableメール.......パスワード.......ユーザーID
[email protected] .......パスワード....... 10005 --->このメールは、ユーザー10005に属している(買い手)
[email protected] .......パスワード....... 20008 --->このメールはユーザー20008に属します
[email protected] .......パスワード....... 30187 --->このメールは、ユーザー30187(荷主)
に属している私は、バイヤーのための3つのテーブルを持っています、
buyer_table
buyerid .......名.......母
10005 .......ジョン:売り手、及び荷主は、それぞれ異なる属性を持っている可能性があるため、 .......メアリー
10006 .......クリス.......ナンシー
seller_table
sellerid .......名.......ペット
20008 .......アダム.......犬
20018 .......トニー.......猫
shipper_table
shipperid .......名.......車
30187 .......ジョージ....... GMC
30188 .......ラリー.......ホンダ
ここでの利点は、私が持っているということですすべてのユーザータイプに対して1つのlogin_table。私は各タイプごとに3つのログインテーブルを持つことは望ましくありません。ユーザーIDの値に基づいて、ユーザーのタイプがわかります。各ユーザー(buyer_table、seller_table、およびshipper_table)ごとに3つのテーブルを保持することは、各ユーザータイプに異なる属性を割り当てることができるだけでなく、スキーマを理解しやすくするためにも有効です。 いいですか?多分。
しかし、私はlogin_tableが "userid"を参照するという点で問題がありますが、3つのユーザーテーブルはそれぞれユーザーのID名が異なるため、buyer_tableではbuyeridがプライマリキーとして、seller_tableでは主キーとしてのsellerid、そして最後にshipper_tableで、shipperidが主キーです。
これらの3つの主キーをlogin_tableにリンクするにはどうすればよいですか? login_tableは、これらの3つのテーブルのいずれかへの外部キーとしてuseridを持っていますが、buyerid、またはsellerid、またはshipperidではなく、「userid」と呼ばれています。
1)範囲に応じてユーザーIDの値を分類することをお勧めしますか?
2)上記のようにPK-FKの問題を解決するにはどうすればよいですか?
3)私は完全にオフですか?
私はこれを何度も見ました。私の経験はあなたがこれを後悔することを示唆しています。あなたが想像するよりも早く。 –