Eu criei o modelo de dados conceituais e o modelo de dados físicos com estas informações:
Modelo de dados conceituais:
Modelo de dados físicos:
quero que 'Compra' tenha muitos 'Ticket'. Por exemplo, algo assim:
(PurchaseID, TicketID)
( 1 1 )
( 1 1 )
( 1 2 )
( 1 2 )
Isso pode corresponder a 'Uma compra com 4 ingressos, 2 ingressos de um tipo e 2 ingressos de outro tipo )
Como posso modelar corretamente?
Tenha uma tabela de ligação 1-muitos
Remover TicketId da compra
Recomendo alterar o campo "Price" no Ticket para CostPrice (não é o mesmo que Purchase.Price)
Não armazene a duração no Ticket - pode ser calculada a partir de DATEDIFF(DAY, Start, End) Se você tiver Moeda no Purchase.Price, você também precisa da Moeda no Ticket, ou pelo menos uma taxa de conversão para igualar o preço de compra. fica agitado - pode precisar de uma tabela de referência Date, CurrencyFRom, CurrencyTo, XRate com taxas de câmbio ao longo do tempo, vinculando em... data de compra.