Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

problème de conception de la base de données lors de l'ajout de nouvelles colonnes à la table à partir de l'application

Créez un tableau composite, c'est-à-dire ClientCharges

Vous pouvez conserver votre tableau des frais d'origine et votre tableau client et dans le tableau des frais client avoir les colonnes suivantes :

ClientChargeId, ClientId, ChargeId

Dans votre tableau de frais, vous pouvez continuer à ajouter (autant de frais que vous le souhaitez), puis référencer le ChargeId dans le tableau ClientCharges.

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)
  • Le client 1 a les charges 1, 2, 3 et 4
  • Le client 2 a le débit 1
  • Le client 3 a les frais 1 et 2
  • Le client 4 a les frais 3 et 4

Ajoutez ensuite des contraintes de clé étrangère sur les champs ClientId et ChargeId.