我不是MySQL专家,我必须为我的关卡设计一个相当复杂的数据库。
我现在面临的问题在于在同一个表格(公司的宏观类别)中建立供应商 - 客户关系:
宏表
BoxLayout
我想表示这样一个事实,即id为1的宏条目在同一个表中描述了其他宏公司(它们是他们的客户)。
哪种方式代表这个?
谢谢!
答案 0 :(得分:0)
这取决于:我们以前都习惯使用规范化形式(如@ 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)
然而,最重要的问题是如何使用数据。如果数据仅适用于该用户而不是以任何其他方式查询(没有位置或分组),则将其存储为序列化字符串是一种完全有效的方法。
答案 1 :(得分:0)
RDBMS中的实体之间的关系应以关系方式存储。问问自己是否关心数据库中的这种关系 - 您是否需要编写将macro.id
链接到macro.macro_customer_id
中由ID表示的表/行的查询?如果是,那么您必须将此关系存储在(一对多或多对多)单独的表中。