首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql如何最好地设置关系为一对多的表

mysql如何最好地设置关系为一对多的表
EN

Stack Overflow用户
提问于 2013-05-22 01:47:07
回答 2查看 28关注 0票数 1

我正在尝试我的表的设置,这对我来说似乎更简单,但我没有设法找到适当的方法。

这是为了计算车辆的售后成本,其中每辆车都将从价目表中获得每一子组服务中的一项,以构成总的售后成本。

请参考下面的场景:

表AfterSalesPriceList将如下所示:

代码语言:javascript
复制
as_id   as_description      as_value

1       service kit1          1000
2       service kit2          1500
3       service kit3          2000
.......
10      repair kit1           5000
11      repair kit2           8000
12      repair kit3           9000
.....
21      pneu 1                1500
22      pneu 2                2500
23      pneu 3                4000
.....
31      battery 1              500
32      battery 2              800
33      battery 3              1000

现在,在另一张桌子上?我会把这些服务中的哪一项放在每辆车必须有且只有一项来自服务、维修、pneu、电池等的项目中,就像表VehicleAS中的那样:

代码语言:javascript
复制
vehicle_id 1    service kit1, repair kit 2, pneu 3, battery 1
vehicle_id 2    service kit2, repair kit 2, pneu 1, battery 2
etc.....

当然,这在mysql中是行不通的,至少据我所知是这样。

有没有一种方法可以在mySql中做到这一点,而不需要将售后服务表格拆分成多个表格,每个表格对应一个子集(一个用于服务,另一个用于维修,另一个用于电池等)。

它肯定会工作与爆炸的AfterSalesPriceList表,但我正在努力使它似乎更符合我的逻辑,即所有售后价格在一个表中。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-22 01:49:44

这是一对多的关系。两个表都有主键。子/多个表将有一个外键列,它的值将指向父表/一个表中的主键。

通过连接父级主键和子级外键,您将找到属于父级的所有子对象。

票数 1
EN

Stack Overflow用户

发布于 2013-05-22 01:55:53

AfterSalesPriceList看起来没问题。

但是,您的另一个表VehicleAS可以具有

代码语言:javascript
复制
vehicle_id, as_id FOREIGN KEY (as_id) REFERENCES AfterSalesPriceList(as_id) 

对于它所使用的每个服务的vehicle_id,它可以有多行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16676320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档