@ Matt Sheppard:
Angenommen, Sie haben eine Kundentabelle. Sicherlich möchten Sie nicht, dass ein Kunde mehr als einmal in der Tabelle vorhanden ist, oder es kommt zu großer Verwirrung in Ihren Verkaufs- und Logistikabteilungen (insbesondere, wenn die mehreren Zeilen über den Kunden unterschiedliche Informationen enthalten).
Sie haben also eine Kundenkennung, die den Kunden eindeutig identifiziert, und Sie stellen sicher, dass die Kennung dem Kunden bekannt ist (in Rechnungen), damit der Kunde und die Kundendienstmitarbeiter eine gemeinsame Referenz haben, falls sie kommunizieren müssen. Um sicherzustellen, dass keine doppelten Kundendatensätze vorhanden sind, fügen Sie der Tabelle eine Eindeutigkeitsbeschränkung hinzu, entweder über einen Primärschlüssel in der Kundenkennung oder über eine NOT NULL + UNIQUE-Einschränkung in der Spalte Kundenkennung.
Als nächstes werden Sie aus irgendeinem Grund (an den ich nicht denken kann) gebeten, der Kundentabelle eine GUID-Spalte hinzuzufügen und diese zum Primärschlüssel zu machen. Wenn die Spalte mit der Kundenkennung jetzt keine Eindeutigkeitsgarantie mehr enthält, fragen Sie nach zukünftigen Problemen im gesamten Unternehmen, da die GUIDs immer eindeutig sind.
Einiger „Architekt“ könnte man sagen , dass „oh, aber wir behandeln echte Kunden Einzigartigkeit Einschränkung in unserem App - Tiere!“. Richtig. Die Mode in Bezug auf diese universellen Programmiersprachen und (insbesondere) Middle-Tier-Frameworks ändert sich ständig und wird Ihre Datenbank im Allgemeinen nie überleben. Und es besteht eine sehr gute Chance, dass Sie irgendwann auf die Datenbank zugreifen müssen, ohne die vorliegende Anwendung durchzugehen. == Ärger. (Aber zum Glück sind Sie und der "Architekt" schon lange nicht mehr da, sodass Sie nicht da sind, um das Chaos zu beseitigen.) Mit anderen Worten: Behalten Sie offensichtliche Einschränkungen in der Datenbank bei (und in anderen Ebenen, falls vorhanden) die Zeit).
Mit anderen Worten: Es kann gute Gründe geben, GUID-Spalten zu Tabellen hinzuzufügen, aber bitte fallen Sie nicht in die Versuchung, Ihre Ambitionen auf Konsistenz innerhalb der realen (== Nicht-GUID-) Informationen zu verringern.