Ich erstelle ein Datenbankschema für Benutzer meiner App, und ich denke, den Benutzer-ID-Wert nach Benutzertyp festzulegen. Also, Käufer: 10.001-19.999 Verkäufer: 20.001-29.999 Versendern: 30.001-39.999Ist es eine gute Übung, der Benutzer-ID Bereiche zuzuweisen?
Als Nächstes weisen ich eindeutige E-Mail-Adressen an die Benutzer-ID: Login_table
Email ....... Passwort ....... Benutzer-ID
[email protected] ....... Passwort ....... 10005 ---> diese E-Mail an Benutzer gehören 10005 (ein Käufer)
[email protected] ....... passwort ....... 20008 ---> diese email gehört dem benutzer 20008 (ein verkäufer)
[email protected] ....... Passwort ....... 30187 ---> Diese E-Mail gehört Benutzer 30.187 (a Versender)
ich dann 3 Tabellen für Käufer haben, Verkäufer und Spediteure, weil jeder kann verschiedene Attribute haben:
buyer_table
buyerid ....... Name ....... Mutter
10005 ....... John ....... Mary
10006 ....... Chris ....... Nancy
seller_table
SellerID ....... Name ....... pet
20008 ....... Adam ....... Hund
20018 ....... Tony ....... Katze
shipper_table
ShipperID ....... Name ....... Auto
30187 ....... George ....... GMC
30188 ....... Larry ....... Honda
Der Vorteil hier ist, dass ich Eine einzige login_table für alle Benutzertypen. Ich möchte nicht 3 Login-Tabellen für jeden Typ haben. Basierend auf dem Benutzer-ID-Wert weiß ich, um welche Art von Benutzer es sich handelt. Wenn Sie drei Tabellen für jeden Benutzer (buyer_table, seller_table und shipper_table) aufbewahren, können Sie das Schema leichter verständlich machen und jedem Benutzertyp unterschiedliche Attribute zuweisen. Klingt gut? Könnte sein.
Allerdings habe ich ein Problem, dass die login_table bezieht sich auf "Benutzer-ID" während die drei Benutzer Tabellen jeweils einen anderen ID-Namen für den Benutzer, so in der Buyer_table Ich habe Käuferseite als Primärschlüssel, in der seller_table es ist Sellerid als Primärschlüssel und schließlich in der shipper_table ist der Shipperid der Primärschlüssel.
Wie kann ich diese drei Primärschlüssel mit der login_table verknüpfen? Die login_table hat Benutzer-ID als Fremdschlüssel für eine dieser drei Tabellen, aber sie heißt "Benutzer-ID", nicht "Käufer-ID", "Verkäufer-ID" oder "Absender-ID".
1) Ist es eine gute Idee, den Benutzer-ID-Wert nach Bereichen zu klassifizieren?
2) Wenn ja, wie kann ich das PK-FK Problem beheben, wie oben beschrieben?
3) Bin ich völlig aus?
Ich habe das schon oft gesehen. Meine Erfahrung zeigt, dass Sie das bereuen werden. Früher als du dir das vorstellst. –