如果我不知道每个记录会填充的字段数,我该如何设置我的数据库/表?
例如,如果我有一个允许用户输入他拥有的所有汽车的Web表单,并且我不想将他限制为某个数字,我将如何将其存储在数据库端?
上述问题延伸到类似的情况,例如存储用户的订单(每个订单的可变项目数量)等。
答案 0 :(得分:9)
在关系数据库管理系统(RDBMS)中,您可以在依赖表中创建子记录,这些子记录将子实体(汽车)与父实体(用户)相关联。有一个称为数据库规范化的概念,目标是每个表包含单一类型实体的数据。
所以你有一个user
表,其中包含用户信息:
user_id | user_name | email | ...
1234 | User1 | user1@example.com | ...
2356 | User2 | user2@example.com | ...
然后另一个表用于存储用户每辆车的信息:
user_car_id | user_id | car_label | make | model | ...
1 | 1234 | MyCar | Ford | 2011 | ...
2 | 2356 | A Car | Chevrolet | 2010 | ...
3 | 1234 | MyOtherCar| BMW | 2000 | ...
因此,您不必在user
表中存储汽车信息,而是通过user_car
列设置一个表格,用于存储与每个用户相关的汽车(user_id
)信息。这是一对多关系的一个例子,其中一个用户可以拥有许多相关的汽车。
答案 1 :(得分:3)
这是一个完整的主题:数据库规范化。
简短的回答是你制作了多张桌子。
在你的例子中,你会有人员表,一张车牌表,以及第三个将人与车相关联的人