gpt4 book ai didi

mysql - 在数据库中实现相互关联的元组的最佳方法,例如零件交换汽车

转载 作者:行者123 更新时间:2023-11-29 23:16:17 25 4
gpt4 key购买 nike

我正在设计一个汽车经销商管理系统,我有以下实体:

汽车、销售、购买、卖方、买方、费用。他们之间的关系是直接的;一辆车可以有很多费用,但只能有一次销售和一次购买。一笔销售可以有一个买家,一笔采购可以有一个卖家。

问题在于实现零件交换车辆。这些基本上是彼此相关且位于同一张表中的车辆:当一辆车被出售时,它可以有现金价格、卡价格或分配给它的零件交换价格,这基本上是经销商的值(value)/金钱已收到付款。这意味着一辆车可以通过使用同一张表中的另一辆车来付费。但我不想为每辆车创建零件交换价格字段,因为这种情况很少发生。

在同一个表中建立此类连接的最佳方式是什么,以便我可以查询诸如“在零件交换的基础上出售的所有汽车是什么以及我换取了哪些汽车”之类的内容

如果我需要澄清一些事情,请告诉我:)

最佳答案

使用 junction table ,将 Cars 与其自身相关联,将该表称为带有列的 CarPartExchange 之类的东西:

  • SoldCarId - 对已售汽车的引用,
  • ExchangedCarId - 对已交换汽车的引用,以及
  • PartExchangePrice - 用于交换的价格。

What are all the cars that were sold on a part exchange basis

select SoldCarId from CarPartExchange;

and what cars did i receive in exchange for them

select SoldCarId, ExchangedCarId from CarPartExchange
inner join Car SoldCar on SoldCar.Id = CarPartExchange.SoldCarId
inner join Car ExchangedCar on ExchangedCar.Id = CarPartExchange.ExchangedCarId
where PartExchangePrice > 100;

如果您想在结果中包含 Car 表中的信息,则上面示例中的联接是必要的。我使用任意示例来查找价格大于 100 的所有交易所。

关于mysql - 在数据库中实现相互关联的元组的最佳方法,例如零件交换汽车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27770384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com