我有一个表让它称之为MainTable,这个表的每一行都有几个公共字段,但是根据let的值,比如说field1,那么该行可以有一个或另一个字段,例如,如果field1为1,那么行最多存储一个field2和field3,如果field1为2那么行最多存储一个field4和field5,而field2 / field3与field4 / field5不同,即使在类型中,请一些帮助,我需要使用这些条件设计数据库的解决方案,我不知道如果将所有字段放在MainTable中或为额外数据创建不同的表,则field1的posibles值为30。
答案 0 :(得分:2)
您需要了解 Database_normalization
您要问的是包含某些行而不是每一行的信息,因此您将拥有许多具有当前设计的空值的列。
您所做的是使用外键创建附加表和链接。
想象一下,你有一个带有字段
的表Cars
car_id, color, size, num_wheels
但有些汽车是休闲车,具有附加属性。因此,您无需在Cars
表格中添加附加列,而是创建另一个表格RV_cars
car_id, bathroom_size, num_bed, bol_tv
所以,如果你想获得一辆车的所有信息,你可以
SELECT C.*, R.*
FROM Cars C
join RV_cars R
ON C.car_id = R.car_id
答案 1 :(得分:0)
尝试使用noSQL数据存储。如果我理解你 - 你会有大约15对不同的字段,所以关系数据库不适合你。或者你需要创建16个表(1个Main和15个extra
数据)并在主表中按住键