Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datenbankentwurfsproblem beim Hinzufügen neuer Spalten zur Tabelle aus der Anwendung

Erstellen Sie eine zusammengesetzte Tabelle, z. B. ClientCharges

Sie könnten Ihre ursprüngliche Gebührentabelle und Ihre Kundentabelle beibehalten und in der Kundengebührentabelle die folgenden Spalten haben:

ClientChargeId, ClientId, ChargeId

In Ihrer Gebührentabelle können Sie weitere Gebühren hinzufügen (so viele Gebühren wie Sie benötigen) und dann auf die ChargeId in der ClientCharges-Tabelle verweisen.

CREATE TABLE ClientCharges
(
    ClientChargeId          INT IDENTITY(1,1)
    , ClientId              INT 
    , ChargeId              INT
)


INSERT INTO ClientCharges
(ClientId, ChargeId)
VALUES
(1, 1),
(1,2),
(1,3),
(1,4),
(2,1),
(3,1),
(3,2),
(4,3),
(4,4)
  • Kunde 1 hat die Gebühren 1, 2, 3 und 4
  • Kunde 2 hat Ladung 1
  • Kunde 3 hat die Gebühren 1 und 2
  • Kunde 4 hat die Gebühren 3 und 4

Fügen Sie dann Fremdschlüsseleinschränkungen für die Felder ClientId und ChargeId hinzu.