Mysql 关于多目录数据库设计的建议
我有一个相对简单的数据库设计,为了简洁起见,我将在这里对其进行简化 我有4个表=>Mysql 关于多目录数据库设计的建议,mysql,database,database-design,relational-database,Mysql,Database,Database Design,Relational Database,我有一个相对简单的数据库设计,为了简洁起见,我将在这里对其进行简化 我有4个表=>产品、产品尺寸、商店、目录 id product_id product_size 1 1 1 2 1 2 3 1 3 4 1 4 共有6家商店,每家商店都有自己独特的定制目录,包括从产品和产品尺寸表中选择的不同产品和尺寸的分类 我想知道如何最好地设计目录表。我的想法是: id store_id product_id product_s
产品、产品尺寸、商店、目录
id product_id product_size
1 1 1
2 1 2
3 1 3
4 1 4
共有6家商店,每家商店都有自己独特的定制目录,包括从产品
和产品尺寸
表中选择的不同产品和尺寸的分类
我想知道如何最好地设计目录
表。我的想法是:
id store_id product_id product_size
1 1 53522 1
2 1 40299 1
3 2 43326 1
4 2 43326 2
或
每个商店都有自己唯一的(并且只有一个)目录,因此按商店id获取所有条目的查询将生成该商店的目录
另一种方法是创建另一个包含组合产品和产品大小的表,并将其放入各自的唯一表中,我们称之为products
id product_id product_size
1 1 1
2 1 2
3 1 3
4 1 4
这个单独的表为所有可能的产品及其尺寸变体提供了唯一的id。这将导致每个目录
条目的每个产品都有一个id
我很想听到一些批评和更好的建议,因为我觉得这是不正确的,不能把我的手指放在如何更好地设计这个。此外,如果我们在每家商店都实施一个以上的目录,我知道当前的设计会让我感到悲伤。任何反馈都将不胜感激 如果是我,我会将
目录
表创建为一个实体表,并使用它自己的id。如果该目录只属于一个存储
,我会添加一个存储id
列作为外键
然后,我将添加一个目录产品
表。这将具有目录
表的外键,以及产品
和/或产品尺寸
表的外键。(如果产品尺寸
仅属于一个产品
表,则仅属于产品尺寸
表。)
为了解决多对多关系,我们通常会添加第三个关系表
- 目录包含零个、一个或多个产品(产品规格)
- 产品(产品规格)显示在零个、一个或多个目录中
- 目录产品仅出现在一个目录中
- 目录包含零个、一个或多个目录产品
- 目录产品仅与一个产品相关
- 一个产品属于零个、一个或多个目录产品
1 1 53522 1
2 1 40299 1
3 2 43326 1
4 2 43327 2
同一产品名称具有不同大小的不同产品id