![]() |
Re: sprechender Primärschlüssel 8)
Matchcode:
Nehmen wir mal die fiktive Firma "a.t.u.". Genügt das als Gegenbeispiel? Da hilft kein Upper und kein Like. Im Matchcode stünde "atu". Da geht das dann. Zusammesetzung aus mehreren Feldern: Beispiel: Ein Artikel setzt sich aus einer Kurzbezeichnung und aus mehreren Abmessungen zusammen. Da nehme ich einfach einen kombinierten Unique-Key über die entsprechenden Felder. Das hat dch mit den IDs nichts zu tun. Oder reden wir aneinander vorbei? |
Re: sprechender Primärschlüssel 8)
Zitat:
Die GUID ist doch nur eine weltweit eindeutige Zahl. Ihre Benutzung ist nicht an ein Windows System gekoppelt. (Auch wenn einige Infos z.B. MAC Adr. einfliessen) Verstehe die Zahl ainfach als das was sie ist. Eine von allem entkoppelte einmalige Zahl. Warum willst Du diese "Zufallszsahl" ändern, wenn Du einen Rechner neu installierst? Zitat:
Merke: Primärschlüssel werden NIE geändert !!! Deshalb sollten sie keine Informationen enthalten. Verstehe die GUID als eine eindeutige Zufallszahl ohne weitere Informationen !!! Zitat:
Zitat:
Was ist ein nicht primärer Schlüssel (oder sekundärter Schlüssel) Auf einem SQL-Server nennt man so etwas Index. Und ein Index wird dazu verwendet einen schnellen Zugriff auf das Feld (oder die Felderkombination) zu bekommen. Bsp. In einer Tabelle Kunde gibt es einen PK, eine KundenNr. und den Namen. Ich lege einen sekundärschlüssel auf Name und Kundennummer, damit ich schneller sortierenkann (order by Name) bzw auch schneller finde (where KundenNr=1234). Allein schon aus Performancegründen finde ich also "sprechende (nicht) Primary Keys" nicht überflüssig. (Erklärungen auch hier: ![]() Zitat:
Ich hoffe ich habe jetzt alle Klarheiten beseitigt ;-) |
Re: sprechender Primärschlüssel 8)
Zitat:
Ich habe in etlichen Programmen schon solche Kundennummern gesehen. Es entstehen dann so "lustige" Kundennummern wie: ATU-FFM-02 |
Re: sprechender Primärschlüssel 8)
Zitat:
Zur GUID : selbe Geschichte. Was, wenn Windows neu installiert wird ? Die GUID ist wieder eindeutig, insofern anders als vorher. Was nun ? |
Re: sprechender Primärschlüssel 8)
Zitat:
ich glaube Du hast hier etwas falsch verstanden ;-) Wir reden nicht von der GUID welche Windows für sich selber erzeugt hat! Du kannst Dir ganz einfach GUIDs erzeugen. Mit diesem Code z.B. bekommst Du immer GUIDs die jeweils eindeutig sind:
Delphi-Quellcode:
Diese GUIDs haben nichts mit meinem OS zu tun. Es sind einfach nur 128Bit Zufallszahlen.
uses
ActiveX, ComObj; function GuidToDezString (aGuid : TGuid) : String; var ndx : integer; foo : string; begin foo := IntToStr (aGuid.D1); foo := foo + '-' + IntToStr (aGuid.D2); foo := foo + '-' + IntToStr (aGuid.D3); foo := foo + '-'; for ndx := 0 to 7 do begin foo := foo + IntToStr(aGuid.D4[ndx]); end; result := foo; end; function Neue_GuID: TGuid; var guidWork: TGUID; begin CoCreateGuid(guidWork); Result := guidWork; end; procedure TForm1.Button1Click(Sender: TObject); var ndx : integer; guid : TGuid; sGuid : string; begin for ndx := 1 to 10 do begin guid := Neue_GuID; Memo1.Lines.Add('Hex : ' + GuidToString (guid)); Memo1.Lines.Add('Dez : ' + GuidToDezString(guid)); Memo1.Lines.Add('----------------------------------'); end; end; |
Re: sprechender Primärschlüssel 8)
Zitat:
Zitat:
(*) ![]() Hier ist der .net Code zum erzeugen einer GUID (Analog sharkys Beispiel)
Delphi-Quellcode:
// Code in C#:
String MyGuid = System.Guid.NewGuid().ToString(); MessageBox.Show (MyGuid); // Code in Delphi.NET var MyGuid: String; begin MyGuid := System.Guid.NewGuid.ToString; MessageBox.Show(MyGuid); end; Zitat:
|
Re: sprechender Primärschlüssel 8)
Ah ja, wir reden bloß über eine Zufallszahl ? Ist zwar so gut wie unmöglich, aber auch Zufälle kommen mehrmals vor. Aber egal, wer benutzt so was als Primärschlüssel ?
|
Re: sprechender Primärschlüssel 8)
Die Wahrscheinlichkeit, zweimal von einem Blitz getroffen zu werden, ist auch nahezu ausgeschlossen. Aber es kommt vor.
Die Wahrscheinlichkeit, einen 128er-Code per Zufall zu entschlüsseln ist auch möglich. Da übernimmt auch niemand irgendwelche Garantien. Ich sehe das auch so wie Hansa. Wenn ich es nicht sicherstellen kann, verlasse ich micht nicht darauf. |
Re: sprechender Primärschlüssel 8)
Zitat:
Es müssen dann also schon 2 Rechner die selbe MAC Adresse haben, die GUID zur selben Zeit erzeugen und dann noch genau die selbe zufallszahl erzeugen, erst dann ist die GUID zweideutig. (Wer weiß was da noch alles in die GUID einfliesst) |
Re: sprechender Primärschlüssel 8)
Zitat:
Wenn tatsächlich ein PK 2 mal vorkommen sollte, so muß dann aber nur einmal pro (sehr seltene Ausnahme) in die PKs eingegriffen (oder abgelehnt) werden. Dieses Verfahren wird in der Praxis bereits tausendfach eingesetzt und funktioniert herrvoragend. Du sagt ja auch nicht: "Ich benutze keine Ehternet, weil es dort zu Kollisionen kommt und ich meine Daten teilweise mehrfach senden muß." |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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