同一表中的供应商-客户关系



我不是MySQL专家,我必须为我的关卡设计一个相当复杂的数据库。

我现在面临的问题是在同一个表(公司的宏观类别)中有一个供应商-客户关系:

<<p> 宏表/strong>
id    name          mega_id    macro_customer_id
------------------------------------------
1     Furniture     2          2,4,5,35

我想表示这样一个事实:id为1的宏条目在同一个表中描述了其他宏公司(即它们的客户)。

哪个是最好的方式来表示这个?

谢谢!

这取决于:我们过去都使用规范化表单(如@1000111所示),但是根据数据的使用,您可以选择以不同的方式看待规范化讨论的某些部分:

正常的模型是:

 Table userData(id,name) 
    - 1:N table linkTable(id,macro_customer_id) 
         - N:1 table metaData(macro_customer_id,value)

或:

 Table userData(id,name) 
    - 1:N table linkTable(macro_customer_id,id) 
然而,最大的问题是如何使用这些数据。如果数据仅针对该用户,并且没有以任何其他方式查询(没有位置,也没有分组),那么将其存储为序列化字符串是完全有效的方法。

RDBMS中实体之间的关系应该以关系的方式存储。问问你自己,如果你关心这个关系在你的数据库-你是否需要写查询将链接macro.id表/行由macro.macro_customer_id中的id表示?如果是,则必须将此关系存储在(一对多或多对多)单独的表中。

最新更新