Identitätsfeld als Primärschlüssel oder Kompositschlüssel von vier Spalten machen

Ich entwerfe die database eines neuen Systems, in dem wir rund 5 Haupttabellen haben, nämlich ClientDwg, DwgMaster, ChildDwg, DwgMaterial, DwgComponent. Alle diese Tabellen haben die gleichen 4 Schlüssel gemeinsam (auch Primärschlüssel zu einem gewissen Grad), die DwgNo, DwgType, DwgPart, DwgVersion sind.

Nun, meine Frage ist, sollte ich einen zusammengesetzten Primärschlüssel der oben genannten vier Spalten in jeder der Tabellen haben oder ich sollte ein Identitätsfeld (id) als Primärschlüssel haben? Was werden die Höhen und Tiefen der beiden sein? Meine reall Sorge ist, dass, wenn ich über Composite-Primärschlüssel dann in meiner Anwendung und database Ich muss auf alle vier Felder überall (machen Joins, Abrufen / Aktualisieren von data etc.) zu machen.

Bearbeiten: Wir schreiben grundsätzlich eine neue Anwendung von Grund auf für eine bestehende Legacy-Anwendung, die die zusammengesetzte Schlüsselidee verwendete (Anwendung war vb6 und oracle db). Es war zu viel Kopfschmerzen in dieser Umgebung. Jetzt schreiben wir die Anwendung in ASP.Net MVC 5 und SQL server 2016.

Ich würde (fast) immer für einen einzigen Surrogat-Key wählen – es ist einfach so viel einfacher, wenn du diesen Tisch mit anderen verbinden musst.

Wenn Sie einen zusammengesetzten Schlüssel haben, müssen alle Tabellen, die auf Ihre Tabelle verweisen, auch alle diese Spalten haben , um die FK-Verbindung herzustellen. Und jedes Mal, wenn Sie eine JOIN-Abfrage schreiben, müssen Sie alle diese Spalten angeben.

Das wird sehr anstrengend und nervig sehr schnell, wenn man mehr als zwei Spalten in deinem zusammengesetzten Index hat ……