Ich habe einen Namen Tabelle mit (id, first_name, middle_name, last_name, Geschlecht) und eine E-Mail-Tabelle mit (id_fk, Email_add)Ist in diesem speziellen Szenario ein Primärschlüssel erforderlich?
Infact ich ähnliche Tabellen der zweiten Art werden mit, wie ein Telefon Tisch (id_fk, phone_no), wobei id_fk der Fremdschlüssel ist, der sich auf die ID in der Namenstabelle bezieht.
Ist es erforderlich oder eher gibt es einen guten Grund, einen Primärschlüssel in der zweiten und dritten Tabelle zu haben? Oder andere ähnliche Tabellen? Oder würden Sie ein anderes Schema vorschlagen?
PS: Die Tische sind für einen Kontakt App
Der Grund, warum ich die Frage gestellt habe ist, dass, während ich Datenbank studiert habe, ich keine echte Welterfahrung (Projekt) habe, die eine verwendet. "Wenn Ihre Datenbank wächst und komplizierter wird, werden Sie ohne Probleme schnell auf Probleme stoßen." Können Sie mir ein Beispiel geben? wie welche Probleme ich haben könnte. Obwohl Ihr Ratschlag solide ist und ich geneigt bin, einen generierten PK für alle Tabellen zu verwenden. – Sujoy
In Ihrer dritten Tabelle (id_fk, phone_no) ist Ihr Primärschlüssel ein zusammengesetzter Schlüssel von id_fk und phone_no, was bedeutet, dass wenn Sie (nicht if) die phone_no ändern müssen, Sie den Primärschlüssel ändern. Zusätzlich, wenn Sie später Ihre Anwendung verbessern und etwas wie Arbeit, Handy und Hausnummern haben und ein Benutzer die gleiche Nummer für alle 3 eingibt, scheitert Ihre Einfügung mit einem doppelten Primärschlüsselfehler. – sipwiz
In diesem Fall sollte die Telefonnummerntabelle eine dritte Spalte namens "type" enthalten und der zusammengesetzte Primärschlüssel sollte (id_fk, phone_no, type) lauten. –