Ich versuche gerade, meinen Kopf um die Idee von Fremdschlüsseln zu wickeln, aber nichts, was ich online gesehen habe, ist so hilfreich, wie ich es brauche.Verwenden von Fremdschlüsseln zum "Synchronisieren" von Mitgliederinformationen
Ich habe eine Datenbank (nennen wir es User_Data). In dieser Datenbank habe ich eine members
Tabelle und ich habe eine contact
Tabelle. Die Mitglieder-Tabelle enthält die Daten für die E-Mail, den Benutzernamen und die Anmeldung, wobei die Kontaktinformationen den Namen und die Telefonnummer des Benutzers enthalten (und ja, bevor wir darüber sprechen, ob ich Telefonnummern brauche oder nicht).
Also, ich habe so etwas wie dies:
CREATE TABLE `members` (
`id` int(11) NOT NULL PRIMARY KEY,
`username` varchar(30) NOT NULL,
`email` varchar(50) NOT NULL,
`password` char(128) NOT NULL,
`user_type` int(11) NOT NULL DEFAULT '0'
);
CREATE TABLE `contact_info` (
`t_ID` int(11) NOT NULL,
`First` varchar(50) DEFAULT NULL,
`Last` varchar(50) DEFAULT NULL,
`Phone` int(11) DEFAULT NULL
);
In der ‚Mitglieder‘ Tabelle, wird der Benutzer mit dem id
und in der Kontakttabelle identifiziert die Kontaktinformationen des Benutzers kann durch members.id = contact_info.t_id
Vergleich ‚gefunden‘ werden
Von dem, was ich sagen kann, würde ein Fremdschlüssel hier perfekt funktionieren, aber ich kann nicht herausfinden, was genau ich tun muss machen es funktioniert ... oder besser, ich verstehe nicht genug über Fremdschlüssel zu verstehen, was ich tun muss. Die Beziehung zwischen members.id
und contact_info.t_id
ist eins zu eins ... Ein Benutzer hat nur eine Kontaktgruppe.
Ich lerne SQL, also bin ich hier fast aus meiner Liga, und ich würde jede Hilfe wirklich schätzen.
In diesem Fall, warum nicht die erste, letzte und Telefon als Teil der Mitglieder Tabelle? –
Wenn das alles wäre, was ich tun würde, würde ich das tun ... aber sobald ich bekomme, was oben funktioniert, werden mehrere weitere "Zeilen" zur Kontakt-Tabelle hinzugefügt, und das macht es mir leichter um zu verfolgen, was wo gespeichert ist. –
Ich bin kein MySql-Typ, daher könnte mir etwas fehlen, aber mir scheint, dass [MySql keine Fremdschlüssel-Beschränkungen erzwingt] (http://dev.mysql.com/doc/refman/5.7/en/ example-foreign-keys.html), so dass ich keinen Grund sehe, sie in dieser Datenbank überhaupt zu deklarieren. –