2012-03-26 6 views
0

Ich bin nicht sicher, wie meine Tabellen zu verknüpfen: Benutzer (Registrierungsdaten der Benutzer), Personal (persönliche Daten von Benutzern), Academic (wissenschaftliche Details der Benutzer), Language (Sprache Details der Nutzer), Arbeit (Thesis Details von Benutzern), Schiedsrichter (Schiedsrichterdetails der Benutzer), Adressen (Adressdaten des Benutzers)Fremdschlüssel Links

Soll ich in jedem der Tabellen ein 'id' Feld habe, so kann ich sie beitreten alle? Plus ein Primärschlüssel von z.B. Akademische_ID. Was würde ich als auto inc einstellen?

Sobald sich die Benutzer registrieren, sollte mein System Informationen aus der Benutzertabelle mit allen anderen Informationen verknüpfen, die sie für die anderen Tabellen eingeben.

Ich hoffe, dass dieses Gefühl dank

Antwort

0

macht neige ich dazu, ein id Feld als Primärschlüssel (Autoincrement) zu tun, dann können Sie einen eindeutigen Schlüssel tun auf user_id können sagen (in jeder Tabelle) und dann kann u Verwenden Sie user_id, um die Tabellen zu verknüpfen.

+0

Danke, ich werde das geben! – user1257518

+0

so würde ich nicht user_id in jeder Tabelle setzen, würde ich einen anderen Namen für z. akademischer Tisch = akademische_ID. Wie würden sie sich mit anderen Namen verbinden? – user1257518

+0

Wie ist Ihre aktuelle Tabellenstruktur?!? – rackemup420

1

Fügen Sie der Tabelle Benutzer ein Feld mit dem Namen "user_id" hinzu. Fügen Sie dann in jeder Tabelle, die Sie den Benutzern hinzufügen möchten, ein Feld mit demselben Namen hinzu. Auf diese Weise können Sie eine Abfrage wie machen:

select * from Users, Personnal 
where Users.user_id = Personnal.user_id 

die Ergebnisse in der Art und Weise anschließen würden Sie wollen. Zu Ihrer zweiten Frage: Ja, Sie können/sollten ein eindeutiges Autoinkrement-Feld wie personal_id und so weiter hinzufügen. Gute Praxis und macht dich einzigartig.