我有一个数据对象如下需要 mysql 存储: 一个人的基本信息和她可以拥有任意数量的车信息
const person = {
name: 'xxx',
height: 111,
car: [{
color: 'xxx',
price: 111,
}]
}
person 对象会按照 SQL 会拆分为两个表,USER 表存放基本信息(name/height) 和 CAR 表存放关联的车辆信息(car),为一对多的关系。
Q1:如何设计表关系更合理,有两种方式但是不知道那种比较合理?
USER 的主键做为 CAR 的字段为外键。
CAR 的主键做为 USER.car 字段的外键。
现有的设计是 USER 的主键做为 CAR 的外键, 但这样我的 USER 表就会少了一个 CAR 的字段定义。
Q2: 如何查询出来的结构和我的数据对象一致? 将关联的 CAR 表都查询出来组装为一个数组对象塞到 USER 结果的 car 字段里面。
我有一个数据对象如下需要 mysql 存储: 一个人的基本信息和她拥有两辆需要对比车辆的信息
const person = {
name: 'xxx',
height: 111,
car1: {
color: 'xxx',
price: 111,
},
car2: {
color: 'xxx',
price: 111,
}
}
person 对象会按照 SQL 会拆分为两个表,USER 表存放基本信息(name/height) 和 CAR 表存放关联的车辆信息(car),为一对一的关系。
Q: 如果采用将 USER 的主键做为 CAR 的字段为外键,这个查询出来就会有两个结果不知道 car1 ,car2 对应的是那个数据。CAR 的主键做为 USER.car1 ,USER.car1 ,字段的外键又不太符合 sql 的设计。求解这种情况该如何设计表关系了?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.