sql 数据库 - table 中的每一行都有不同 table 中的额外数据
sql database - each row in a table with extra data in different tables
我有一个 table 我们称它为 MainTable,这个 table 的每一行都有几个公共字段,但是根据 field1 的值,该行可以有一个或另一个字段,比如field1为1那么该行最多存一个field2和field3,如果field1为2那么该行最多存一个field4和field5,field2/field3和field4/field5连类型都不一样,请帮忙,我需要一个解决方案来设计具有这种条件的数据库,我不知道是否将所有字段放在 MainTable 中或为额外数据创建不同的 table,字段 1 的可能值是 30.
尝试使用noSQL数据存储。如果我理解你 - 你会有大约 15 对不同的字段,所以关系数据库不适合你。或者您需要创建 16 个 tables(1 个 Main 和 15 个 extra
数据)并在 main table
中保持键
您需要了解 Database_normalization
您要问的是包含某些行的信息,而不是每一行的信息,因此在当前设计中您将有很多列为空值。
您所做的是使用外键创建额外的 table 和 link。
假设您有一个 table Cars
字段
car_id, color, size, num_wheels
但有些汽车是休闲车,具有附加属性。因此,不是在 Cars
table 中添加附加列,而是创建另一个 table 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
我有一个 table 我们称它为 MainTable,这个 table 的每一行都有几个公共字段,但是根据 field1 的值,该行可以有一个或另一个字段,比如field1为1那么该行最多存一个field2和field3,如果field1为2那么该行最多存一个field4和field5,field2/field3和field4/field5连类型都不一样,请帮忙,我需要一个解决方案来设计具有这种条件的数据库,我不知道是否将所有字段放在 MainTable 中或为额外数据创建不同的 table,字段 1 的可能值是 30.
尝试使用noSQL数据存储。如果我理解你 - 你会有大约 15 对不同的字段,所以关系数据库不适合你。或者您需要创建 16 个 tables(1 个 Main 和 15 个 extra
数据)并在 main table
您需要了解 Database_normalization
您要问的是包含某些行的信息,而不是每一行的信息,因此在当前设计中您将有很多列为空值。
您所做的是使用外键创建额外的 table 和 link。
假设您有一个 table Cars
字段
car_id, color, size, num_wheels
但有些汽车是休闲车,具有附加属性。因此,不是在 Cars
table 中添加附加列,而是创建另一个 table 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