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