![]() |
Datenbank: allgemein • Zugriff über: egal
DB-Feld im Klartext als Schlüssel oder besser IDs ?
Hi,
es geht darum, ob IDs verwendet werden sollen, oder ob ein Feld der DB als Primary Key verwendet werden soll. Z.B. Kundennr. als Primary-Key, anstatt jedem Datensatz eine ID zu verpassen und nur darüber Verknüpfungen herzustellen. Was spricht für das eine oder das andere ? Um es Vorweg zu nehmen : bei mir hätte sogar eine Tabelle mit einem einzigen relevanten Feld trotzdem noch eine vom User nicht manipulierbare ID. |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Hallo Hansa,
dieses Thema, das dich ja in immer kürzeren Zeitabständen bewegt, leidet in jeder Diskussion an einer klaren Begriffsbestimmung. Du sprichst von ID als Synonym für einen primary key, aber ID steht salopp für identifier und entspricht dann in unseren Breiten der Nummer nach DIN 6763. Es ist nicht gut, wenn ständig Begriffe aus der Datenbank-Technik (Schlüssel) mit solchen aus der Datenbank-Anwendung (Nummer) vermischt werden. (Wirtschafts-)Informatiker unterscheiden klar zwischen Schlüsseln und Nummern. Ist ja auch beides seit etwa 20 Jahren gut beschrieben, Schlüsssel in der relational theory nach Codd und Nummern in der DIN. Genauso, wie es Gründe zur Aufhebung bestimmter Normalformen, zur kontrollierten Einführung von Redundanz, gibt, genauso mag es ökonomische Gründe geben, warum einer auf einen surrogate key verzichtet, wenn er geeignete candidate keys kennt. Da mag es lookup tables mit weniger als 10 Tupeln geben - z.B. ein dictionary für das Attribut Geschlecht, zwei Tupel (m, männlich) und (w, weiblich). Der Datenbank-Hersteller hat schon seinen rowid dazugepackt, ob du es willst oder nicht. Jetzt packst du deinen noch dazu. Es gibt Menschen die tragen Hosenträger und Gürtel. Ich verurteile das nicht. Wer sich falsch entscheidet, der bekommt halt Prügel. Grüße vom marabu |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Zitat:
Zitat:
|
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Marabu, mich bewegt gar nichts in immer schnelleren Abständen. Das ist eben eine Diskussion. Die habe ich jetzt verlagert, weil sie auf ein Randthema kam. Und jetzt fange bitte nicht noch mit DIN usw. an. 8) Dann sage ich eben "automatisch vom Programm zu vergebende interne Datensatznummer" statt ID. Ist Dir das lieber ?
Ich will ja auch nur wissen, wer das nicht so macht und warum. Es geht im Prinzip auch eher um Schlüssel. Das Primary ist auch eher sekundär zu sehen. |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Zitat:
Die Diskussion kann man hier nachlesen: ![]() |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Zitat:
"automatisch vom SQL-Server zu vergebender interne Datensatznummer" Im MS-SQL Server ist das imho eine GUID. Falls Du folgendes meinst: "automatisch vom SQL-Server zu vergebender Primärschlüssel" Dort würde ich in bestimmten Situationen (siehe letzte Diskussion) dem "autoinc Integer" eine GUID vorziehen. Zitat:
|
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Hallo MaBuSE,
Zitat:
Zitat:
marabu |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Zitat:
Bei Oracle ist die rowid definitiv keine GUID. Zitat:
Ich habe bisher nur in einem Projekt die GUID als PK gebraucht. Dort aber konsequenterweise in jeder Tabelle als PK. Alles anderen "Pseudo-Schlüssel-Felder" waren nur "Matchcodes" (Kundenr, Artikelnr, ...) die nicht zur Verknüpfung genutzt wurden. |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Ich handhabe es eigentlich genau wie MaBuSE,
wenn immer es geht benutze ich für den PK ein AutoInc-Feld(Integer). Ich hatte aber ein/zweimal den Fall das ich eine GUID als PK verwendet habe. In diesen Fällen hätte der Aufwand dies auf einem anderen Weg zu lösen in keinem Verhältniss zum Nutzen gestanden. Vor allem weil es dort fast keinen geschwindigkeits unterschied gemacht hat. Sobald es aber einmal DBMS gibt welche das sauber handhaben könnne (Hardware die es kann). Werde ich mit viel Vergnügen nur noch GUIDs verwenden. |
Re: DB-Feld im Klartext als Primärschlüssel oder besser IDs
Kleines OT:
Zitat:
Das dürfte dazu führen, das es mit höherer Wahrscheinlichkeit die gleiche RowID in einer anderen DB auf einer anderen Maschine gibt... Es ist sehr unwahrscheinlich, dass es die gleiche RowId in einer anderen Instanz auf der gleichen Maschine/Cluster gibt. (Ist mir jedenfalls noch nie aufgefallen ;) ) |
Re: DB-Feld im Klartext als Schlüssel oder besser IDs ?
Ich fasse es nicht. Da macht man einen neuen Thread auf, um von der GUID wegzukommen hat wenig Zeit und dann kommt noch DIN und Robert_G. :lol: Die DP ist echt köstlich. :mrgreen: Manchmal hat es wohl keinen Zweck, ein ernsthaftes Thema zu erörtern. 8)
|
Re: DB-Feld im Klartext als Schlüssel oder besser IDs ?
Zitat:
das kann aber auch daran liegen das Du
Ich selber fand den ursprünglichen Thread sehr interessant. Warum genau Du jetzt noch einen zu einem fast gleichen Thema aufmachst verstehe ich nicht so richtig. Aber da die Themen nun einmal fast gleich sind ist es doch selbsverständlich das auch die selben Argumente gebracht werden bzw. die selben Methoden (unter anderem die Verwendung einer GUID) beschrieben werden. |
Re: DB-Feld im Klartext als Schlüssel oder besser IDs ?
Hallo Hansa,
Zitat:
Nächtliche Grüße vom marabu |
Re: DB-Feld im Klartext als Schlüssel oder besser IDs ?
Zitat:
Ansonsten schliesse ich mich der Meinung von Sharky und marabu in den letzten 2 Posts an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz