2012-04-03 21 views
0

Ich habe eine ziemlich große Klassenhierarchie, die ich gerne mit der Tabelle pro Hierarchie verwenden würde, aber mit einer kleinen Wendung. Meine Hierarchie sieht so aus:Fließende NHibernate-Automatiktabelle pro Hierarchie: Kann ich eine Hierarchie aufteilen?

Event --> [specific_events] --> Transaction --> [specific_transactions] 

Ich möchte diese Hierarchie in zwei Tabellen aufteilen, Event und Transaction. Alle Transaktionen sind jedoch Ereignisse, und ich glaube, NHibernate wird versuchen, die gesamte Hierarchie in die Event-Tabelle zu stellen.

Wie kann ich sagen, dass die Hierarchie zwischen Ereignissen und Transaktionen aufgeteilt werden soll?

EDIT: Ich habe die Hierarchie etwas falsch. Alle spezifischen Ereignisse werden von Event abgeleitet und alle Transaktionen werden von Event und nicht von spezifischen Ereignissen abgeleitet.

Event --> [specific_events] 
Event --> Transaction --> [specific_transactions] 
+0

Das macht keinen Sinn. Sie haben gesagt, dass Sie den Ansatz "Tabelle pro Hierarchie" verwenden möchten. Sie möchten jedoch, dass Event und Transaction, die zur selben Hierarchie gehören, in separaten Tabellen liegen. –

+0

Ich bin ein bisschen nicht klar auf diese, "Ich möchte diese Hierarchie in zwei Tabellen, Event und Transaction. Allerdings sind alle Transaktionen Ereignisse, und ich glaube, NHibernate wird versuchen, die gesamte Hierarchie in die Ereignistabelle. " Es ist jedoch möglich, alle Ereignisse in die eine Tabelle zu setzen und alle Transaktionen in eine andere Tabelle zu stellen, jedoch wird pro Transaktion ein Eintrag in der Ereignistabelle vorhanden sein. –

Antwort

0

Es ist nicht möglich, wie ich weiß. Warum willst du sie in 2 verschiedene Tabellen aufteilen?

Auch gibt es eine sehr gute Erklärung über verschiedene Strategien für Hierarchiezuordnungen in NHibernate in Action Book. Es hat mir sehr geholfen.

+0

Der einzige Grund, warum ich sie teilen möchte, ist, weil es etwa 30 von jedem gibt und es wäre einfach nett, sie der Einfachheit halber getrennt zu haben. – Brian

+0

Die Auswahl der Mapping-Strategie hat einen großen Einfluss auf die Performance. Polymorphe Abfragen (anschließend werden alle Instanzen der Basisklasse abgefragt) werden langsam ausgeführt, wenn Sie Ihre Hierarchie verschiedenen Tabellen zuordnen. Wenn Sie also eine Mapping-Strategie wählen, müssen Sie Ihre üblichen Abfragen, die gewünschte Leistung und ähnliches berücksichtigen – Nikolay