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

Mysql 数据库表设置:多个表具有相同的用途?

Mysql 数据库表设置:多个表具有相同的用途?,mysql,sql,database,Mysql,Sql,Database,我需要为bugtracker设置一个MySQL数据库,它与一个changelog配对 因此,我基本上有三个表:产品,版本,问题,问题解决方案。我之所以拆分问题及其解决方案,是因为我希望能够为用户提供一组可能的解决方案 现在,我想向每个表添加附件,并通过数据库管理它们。应该有图片,PDF文件。。。针对每个产品、版本,可能针对每个问题和解决方案 我宁愿 创建4个附件表(产品附件,版本附件,…),或 创建一个附件表并创建一列,说明其用途 如果是后者,我应该怎么做?我想使用外键引用产品、版本、问题或

我需要为bugtracker设置一个MySQL数据库,它与一个changelog配对

因此,我基本上有三个表:
产品
版本
问题
问题解决方案
。我之所以拆分问题及其解决方案,是因为我希望能够为用户提供一组可能的解决方案

现在,我想向每个表添加附件,并通过数据库管理它们。应该有图片,PDF文件。。。针对每个产品、版本,可能针对每个问题和解决方案

我宁愿

  • 创建4个附件表(
    产品附件
    版本附件
    ,…),或
  • 创建一个附件表并创建一列,说明其用途

如果是后者,我应该怎么做?我想使用外键引用产品、版本、问题或解决方案的特定ID。然后我是否应该创建4列,每个列都有一个外键,并决定它是否是产品的附件、版本。。。取决于这些列中的哪一列不为空?这不会使我的查询变得不必要的复杂吗?

我说创建一个表,使其主键可用,并为附件和其他实体之间的多对多关系创建另一个EAV类型的表,其中“值”对应于附件ID,“实体”对应于外部ID和“属性”以您喜欢的任何形式(1,2,3,4?)从一组固定的
产品、版本、问题、解决方案中提取一个值。通过这种方式,附件将存储在一个具有
id,blob
结构的表中,可能具有相应的
count
列来存储关系表中的链接量,以便可以轻松地检测和删除孤立的附件。

使用EAV模型真的是比“经典”更好的解决方案吗这个场景中的关系模型?