Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

problema de design do banco de dados ao adicionar novas colunas à tabela do aplicativo


Faça uma tabela composta, ou seja, ClientCharges

Você pode manter sua tabela de cobranças original e sua tabela de clientes e na tabela de cobranças do cliente ter as seguintes colunas:

ClientChargeId, ClientId, ChargeId

Na sua tabela Charges, você pode continuar adicionando (quantos Charges você precisar) e, em seguida, referenciar o ChargeId na tabela 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)
  • O cliente 1 tem cobranças 1, 2, 3 e 4
  • Cliente 2 tem cobrança 1
  • O cliente 3 tem cobranças 1 e 2
  • O cliente 4 tem cobranças 3 e 4

Em seguida, adicione restrições de chave estrangeira nos campos ClientId e ChargeId.