Hallo zusammen,
mich würde heute folgendes interessieren:
Ich habe eine Entity, die viele Referenzen haben kann, also als Beispiel:
- Entity Note kann 1....n ReferenzObjekte haben
ReferenzenObjekte können sein: Angebot, Rechnung, Bild, Gutschrift
-> Im Endeffekt alle Entities meiner Anwendung (und das sind mittlerweile 70-80)
Ich könnte nun natürlich eine Tabelle ReferenzObjekte anlegen, die für jede Entity einen FK - Schlüssel hat:
Rechnung_FK, Angebot_FK usw.
-> Das Problem ist aber, dass MSSQL hier bei 64 Fremdschlüsseln ein Problem hat.
Ich habe das nun so gelöst:
ReferenzObjekte
- ID
- String EntityName
- String ObjectId
- EntityName ist dann jeweils immer di Entität. Also z.B. für "Rechnung" wird dann eben "Rechnung" als String hineingeschrieben
- ObjectId ist die ID von der Rechnung
Will ich nun die Referenz holen, suche ich mit "EntityName" und "ObjectId" und bekomme dann für Rechnung bspw:
EntityName = Rechnung
ObjectId = 1
-> die Rechnung 1.
Das funktioniert auch alles so. Aber die Frage ist für mich, kann man diesen Ansatz zu wählen oder wird mir das früher oder später ein Problem geben (Stichwort Performance bspw.) ?
Danke für die Hilfe
mich würde heute folgendes interessieren:
Ich habe eine Entity, die viele Referenzen haben kann, also als Beispiel:
- Entity Note kann 1....n ReferenzObjekte haben
ReferenzenObjekte können sein: Angebot, Rechnung, Bild, Gutschrift
-> Im Endeffekt alle Entities meiner Anwendung (und das sind mittlerweile 70-80)
Ich könnte nun natürlich eine Tabelle ReferenzObjekte anlegen, die für jede Entity einen FK - Schlüssel hat:
Rechnung_FK, Angebot_FK usw.
-> Das Problem ist aber, dass MSSQL hier bei 64 Fremdschlüsseln ein Problem hat.
Ich habe das nun so gelöst:
ReferenzObjekte
- ID
- String EntityName
- String ObjectId
- EntityName ist dann jeweils immer di Entität. Also z.B. für "Rechnung" wird dann eben "Rechnung" als String hineingeschrieben
- ObjectId ist die ID von der Rechnung
Will ich nun die Referenz holen, suche ich mit "EntityName" und "ObjectId" und bekomme dann für Rechnung bspw:
EntityName = Rechnung
ObjectId = 1
-> die Rechnung 1.
Das funktioniert auch alles so. Aber die Frage ist für mich, kann man diesen Ansatz zu wählen oder wird mir das früher oder später ein Problem geben (Stichwort Performance bspw.) ?
Danke für die Hilfe