Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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_Entity Relationship - Fatal编程技术网

在MYSQL中配置多个单元类型之间的多个关系

在MYSQL中配置多个单元类型之间的多个关系,mysql,entity-relationship,Mysql,Entity Relationship,我在MYSQL数据库中有几个表,其中的单元必须相互关联,例如: 产品 产品类别 实验 实验类别 下载 文章 每一对都应该有关系 随着类型的数量从产品和类别逐渐增加,我开始使用带有两个id键/外键的简单外部参照表,例如product_id | category_id 现在,有了上面提到的所有内容,我想可以用一个关系表来处理所有类型的关系,比如: table_name1 | item_id1 | table_name2 | item_id2 问题是,我不知道如何配置外键,以便数据库本身保持数

我在MYSQL数据库中有几个表,其中的单元必须相互关联,例如:

  • 产品
  • 产品类别
  • 实验
  • 实验类别
  • 下载
  • 文章
每一对都应该有关系

随着类型的数量从产品和类别逐渐增加,我开始使用带有两个id键/外键的简单外部参照表,例如product_id | category_id

现在,有了上面提到的所有内容,我想可以用一个关系表来处理所有类型的关系,比如:

table_name1 | item_id1 | table_name2 | item_id2 
问题是,我不知道如何配置外键,以便数据库本身保持数据完整性,甚至不知道如何从中构建查询

在MYSQL中,可以使用哪些DB级别的策略来保持这样的图形结构

如果我坚持使用MYSQL,我是不是一定要为每个关系使用一个外部参照,还是有什么聪明的方法来存储这样的图形并强制实施数据完整性

或者我应该考虑使用其他数据库吗?如果是这样的话,哪些方法对nodejs有效


提前感谢)

我看不出您当前的安排有任何错误或不理想之处。在所有关系数据库中,外键关系在DDL(创建/更改/删除)中定义,并且是数据库结构的一部分。您提出的解决方案会将这些信息推送到表的数据中,而这是任何关系数据库都不支持的。因此,每当我必须添加新的关系或新的实体时,它看起来都不是最理想的。此时,我需要15个外部参照表并调用15个查询来获取单个项的所有相关实体。如果我们添加另一个实体类型,它将是21,以此类推。看到建立关系有一个共同的模式,我就忍不住想把它们规范化@是的,这是个问题。那么,我如何在关系数据库中正确地实现这一点呢?恕我直言,您可能是在过度思考/过度概括。可以设计一个E-R模型,其中关系结构与您正在建模的真实世界系统相匹配。正如您所知,SQL的外键约束系统就是为了处理这个问题而设置的。不要不必要地创建实体(如您的通用关系表建议)。但是,一定要考虑一下您的分类法(类别)以及将来如何使用它们。WordPress很好地处理分类法。