2 Stimmen

NHibernate dateTime als eine ID Schlechte Idee?

Ich habe eine Entität und es scheint wie mit DateTime als Id wäre eine gute Klage, aber ich gibt es dieses seltsame Gefühl, dass es eine schreckliche Idee sein könnte (tho i cant kommen mit jedem logischen Grund, warum),

Dies ist ein unveränderliches Objekt (d.h. wenn der Wert einmal aufgezeichnet wurde, sollte er sich nicht mehr ändern) Also DateTime als id-Feld in NHibernate ja oder nein? Ich würde Ihre Kommentare zu diesem Thema zu schätzen wissen

3voto

Marko Punkte 29192

Schlechte Idee. Niemals darf eine eindeutige ID eine Bedeutung haben, denn die Bedeutung kann sich ändern, eine andere Einschränkung der Bedeutung kann sich ebenfalls ändern, und die ID muss genau das sein, eine ID.

Wenn Sie müssen, können Sie einen eindeutigen Index auf das Feld datetime setzen und es in Abfragen verwenden, aber id als guid oder autinc beibehalten.

2voto

Joe Punkte 44378

Sehr schlechte Idee. Was ist, wenn Sie Duplikate haben? Sie haben keine Möglichkeit, die Einzigartigkeit des Feldes zu garantieren. Wahrscheinlich werden nicht zwei Objekte zur gleichen Zeit erstellt, aber es ist nicht garantiert. Bei einer automatisch inkrementierenden oder GUID wissen Sie jedoch, dass die Datenbank dafür sorgt, dass die Schlüssel konsistent bleiben.

2voto

Dani Punkte 13900

Eine sehr schlechte Idee. Sie ist möglicherweise nicht eindeutig, hat viele Bedeutungen (+/- GMT) ect. Verwenden Sie stattdessen die Identitätsspalte und speichern Sie die Datumsangabe in einer separaten Spalte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X