[英]Database modeling
假设我有 n 个地点和 p 数量的产品。 每个位置将有一些但不一定是所有这些产品和它们自己的特定于位置的产品元数据(例如数量)。 在每个位置和列表中的每个单独产品之间建立所有权关系的最有效方法是什么?
我正在考虑一个“所有权”表,其中包含主键、位置外键、产品外键以及位置特定元数据的后续列。 显然,通过这个解决方案,我正在查看该“所有权表”中的 n * p 值。 有没有更有效的方法呢? 也许更像 n + p?
这必须在 MySQL 中完成。
看起来我正在处理多对多关系。 我能找到的最佳解决方案是使用来自两个共享数据集的主键填充相关表。 即列包括:表的主键,对应于两个数据集的主键的两个外键,以及特定于关系的元数据的附加列。
听起来像 3 个表:
location_id
、 product_id
、 quantity
。 PRIMARY KEY(location_id, product_id), INDEX(product_id)
locations
有location_id
、 address
等列。如果price
在不同地点是通用的,那么它应该是一列。 PRIMARY KEY(location_id)
products
包含用于product_id
、 name
、 description
和其他常见属性的列,以及用于随机不常见属性的 JSON 列。 PRIMARY KEY(product_id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.