Ich arbeite daran, eine Geschäftsanwendung für mein Unternehmen zu erstellen, und habe Probleme, das für eine bestimmte Situation am besten geeignete Datenbankdesign auszuwählen. Angenommen, ich habe die folgenden Entitäten:
Die Genehmigung
- Ich würde
- Status
- ...
ApprovalComment
- Ich würde
- ApprovalId
- Kommentar
Auftrag
- Ich würde
- ...
Rechnung
- Ich würde
- ...
Es kann offensichtlich mehrere Arten von Genehmigungen und mehrere Objekte geben, für die Genehmigungen erforderlich sind. Welche der folgenden Optionen eignet sich am besten zum Entwerfen der Tabellen:
OPTION 1
Haben Sie eine Genehmigungstabelle mit Null-Fremdschlüsseln:
Zulassungen
- Id PK
- Status
- OrderId FK NULL
- InvoiceId FK NULL
Genehmigungskommentare
- Id PK
- ApprovalId FK
- Kommentar
In diesem Fall müsste ich für jedes Objekt, das eine Genehmigung benötigt, eine Spalte hinzufügen
OPTION 2
Haben Sie eine übergeordnete Genehmigungstabelle mit gemeinsamen Feldern und eine untergeordnete Tabelle für jedes Objekt, das eine Genehmigung benötigt:
Zulassungen
- Id PK
- Status
Genehmigungskommentare
- Id PK
- ApprovalId FK
- Kommentar
OrderApprovals
- ApprovalId PK FK
- OrderId FK
InvoiceApprovals
- ApprovalId PK FK
- InvoiceId FK
OPTION 3
Haben Sie eine Genehmigungstabelle für jedes Objekt:
OrderApprovals
- Id PK
- OrderId FK
- Status
OrderApprovalComments
- Id PK
- OrderApprovalId FK
- Kommentar
InvoiceApprovals
- Id PK
- InvoiceId FK
- Status
InvoiceApprovalComments
- Id PK
- InvoiceApprovalId FK
- Kommentar
Ich weiß, dass dies alles gültige Lösungen sind, aber ich kann mich nicht entscheiden, welche am besten geeignet ist, um in Zukunft verschiedene Arten von Genehmigungen hinzuzufügen. Irgendwelche Gedanken?
