繁体   English   中英

数据库建模

[英]Database modeling

假设我有 n 个地点和 p 数量的产品。 每个位置将有一些但不一定是所有这些产品和它们自己的特定于位置的产品元数据(例如数量)。 在每个位置和列表中的每个单独产品之间建立所有权关系的最有效方法是什么?

我正在考虑一个“所有权”表,其中包含主键、位置外键、产品外键以及位置特定元数据的后续列。 显然,通过这个解决方案,我正在查看该“所有权表”中的 n * p 值。 有没有更有效的方法呢? 也许更像 n + p?

这必须在 MySQL 中完成。

看起来我正在处理多对多关系。 我能找到的最佳解决方案是使用来自两个共享数据集的主键填充相关表。 即列包括:表的主键,对应于两个数据集的主键的两个外键,以及特定于关系的元数据的附加列。

听起来像 3 个表:

  • 主表有 3 列以上: location_idproduct_idquantity PRIMARY KEY(location_id, product_id), INDEX(product_id)
  • locationslocation_idaddress等列。如果price在不同地点是通用的,那么它应该是一列。 PRIMARY KEY(location_id)
  • products包含用于product_idnamedescription和其他常见属性的列,以及用于随机不常见属性的 JSON 列。 PRIMARY KEY(product_id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM