AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CRC 64 bit

Offene Frage von "shmia"
Ein Thema von shmia · begonnen am 21. Jul 2005 · letzter Beitrag vom 21. Jul 2005
Antwort Antwort
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

CRC 64 bit

  Alt 21. Jul 2005, 17:21
Hallo,

ich habe zig-Tausende Adressen (Name, Anschrift, tel, EMail) in einer Tabelle gespeichert.
Ich muss nun sehr schnell feststellen, ob eine gegebene Adresse schon in der Tabelle exisitiert oder nicht.

Dazu möchte möchte ich einen 64 bit Hashwert verwenden.
Die Wahrscheinlichkeit, dass bei 1 Mio Adressen, zwei Adressen den gleichen Hashwert bekommen,
liegt bei 1 zu 18 Billiarden; das ist mir sicher genug.
Der Hashwert soll gleichzeitig auch das Primärschlüsselfeld werden.

Wie soll ich nun den 64bit Hashwert errechnen?
Aus 2 mal CRC32 (Funktionen wären vorhanden) bilden, oder MD5 berechnen und auf 64 bit "zusammenfalten
oder eine spezielle CRC64 Funktion verwenden ?

Wichtig: das Verfahren darf sich später nicht mehr ändern, da der Primärschlüssel als Fremdschlüssel in anderen Tabellen verwendet wird.
Andreas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: CRC 64 bit

  Alt 21. Jul 2005, 18:12
Hi,

den hash als primary key zu verwenden finde ich nicht gut. Eine hohe Wahrscheinlichkeit der Eindeutigkeit macht einen hash nicht zum candidate key. Ich würde bei einem informationsfreien surrogate key bleiben und den hash zusätzlich speichern.

Wenn du einen 64-bit hash brauchst, dann wirst du auch einen nehmen müssen. Einen basteln aus zwei 32-bit hashes oder durch Verstümmelung eines 128-bit hash geht nicht. Was da raus kommt ist kein hash.

Warum musst du die Existenzprüfung für eine Adresse sehr schnell machen?
Hast du schon über Erfassungsfehler nachgedacht?
Du brauchst eine Kanonisierungsfunktion - hast du schon eine?
Welche weitere Entscheidung hängt vom Ergebnis der Existenzprüfung ab?

Die Änderung eines primary key ist mit DRI (cascade update) nicht soo problematisch.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz