NHibernate und hilo generator: Wie erstellt man Schlüsseltabellen?

8

Ich bin dabei, einige meiner Entitäten von Identität zu hilo id-generator zu wechseln.

Ich habe keine Ahnung, wie die Tabellen mit den nächsthöheren Werten gestaltet werden sollten.

  • sollte ich eine einzelne Tabelle für alle Entitäten oder für eine Gruppe verwandter Entitäten verwenden?
  • Soll ich für jede Entität eine andere Tabelle verwenden?
  • Soll ich eine einzelne Tabelle mit einer anderen Zeile oder Spalte pro Entität verwenden?

Gibt es Best Practices? Was muss beachtet werden? Gibt es irgendwelche Vor- oder Nachteile für einen der Ansätze?

    
Stefan Steinegger 03.02.2010, 14:09
quelle

1 Antwort

3

Ich glaube nicht, dass es eine einzige "beste" Übung gibt, aber es ist wichtig zu verstehen, wie HiLo funktioniert:

  • Der Tabellen-hilo-Generator ist für Datenbanken gedacht, die keine Sequenzen unterstützen, die für diese Aufgabe natürlicher sind.
  • Der Wert für Hi für eine Klasse wird abgerufen und aktualisiert, wenn Sie eine Instanz dieser Klasse zum ersten Mal speichern oder wenn Sie keine Lo -Werte mehr haben.
  • Für jede Klasse wird ein anderer Wert Hallo verwendet.

Sie müssen also mindestens zwei Variablen berücksichtigen:

  • Auseinandersetzung. Sie können die Leistung durch Verwendung separater Tabellen etwas verbessern
  • Reichweite. Bei einer sehr großen Datenbank besteht ein größeres Risiko, dass die Hi -Werte zu Ende gehen.

Wenn man bedenkt, ist das nur eine Frage des Geschmacks.

    
Diego Mijelshon 04.02.2010, 20:01
quelle