如何在单个SQL表属性中存储多个实体实例

时间:2013-12-10 14:26:45

标签: sql

我有这些SQL表

  • Date(d_id,blabla, products_1 products_2
  • Product_1(p1_id)
  • Product_2(p2_id)

我希望保存在Date的一行中,Product_1的一方和Product_2的一方

“简单”的方式是创建另外两个表

  • Date_P1(d_id,p_id)
  • Date_P2(d_id,p_id)

例如

Date_P1: {(d1,p01), (d1,p02), (d1,p04), (d2,p01), (d2,p03), (d3,p02)} etc.

但我不认为这是我能做到这一点的最佳方式......

是否可以将某种数组保存为“日期”属性?

*(包含product_1 ids和product_2 ids的数组)*

1 个答案:

答案 0 :(得分:0)

如果您想在数据库中建立多对一(或多对多)关系,那么最好的方法就是拥有表Date,Product1和Date_P1。

另一个想法是以字符串的形式存储“产品ID列表”,例如Date:{(d1, "p01;p02;p03") ...}。这样做的问题是某些查询可能难以有效执行,并且根本不建议使用此