Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 关于多目录数据库设计的建议_Mysql_Database_Database Design_Relational Database - Fatal编程技术网

Mysql 关于多目录数据库设计的建议

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

我有一个相对简单的数据库设计,为了简洁起见,我将在这里对其进行简化

我有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_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
列作为外键

然后,我将添加一个
目录产品
表。这将具有
目录
表的外键,以及
产品
和/或
产品尺寸
表的外键。(如果
产品尺寸
仅属于一个
产品
表,则仅属于
产品尺寸
表。)

为了解决多对多关系,我们通常会添加第三个关系表

  • 目录包含零个、一个或多个产品(产品规格)
  • 产品(产品规格)显示在零个、一个或多个目录中
关系表为我们提供了“一对多”关系,我们可以表示:

  • 目录产品仅出现在一个目录中
  • 目录包含零个、一个或多个目录产品
  • 目录产品仅与一个产品相关
  • 一个产品属于零个、一个或多个目录产品

id商店\u id产品\u id产品\u尺寸

1  1        53522      1
2  1        40299      1
3  2        43326      1
4  2        43327      2
同一产品名称具有不同大小的不同产品id