Mysql 与无限未知未来表的关系
我正在开发我自己的族谱软件,在那里我希望能够为一个活动添加无限量的来源、注释和地点。但是关于源表,我有一个问题。 不可能创建一个适合所有类型源的表 来源示例 资料来源:信Mysql 与无限未知未来表的关系,mysql,database-design,Mysql,Database Design,我正在开发我自己的族谱软件,在那里我希望能够为一个活动添加无限量的来源、注释和地点。但是关于源表,我有一个问题。 不可能创建一个适合所有类型源的表 来源示例 资料来源:信 到 从 日期 正文 资料来源:互联网 网站 日期 正文 资料来源:人口普查 年 陈述 郡 地址。。。等等 到目前为止,我的解决方案是为每种源类型创建一个特殊的表,并将它们链接到一个event\u vs\u源表 ID INT eventID VARCHAR sourceID
- 到
- 从
- 日期
- 正文
- 网站
- 日期
- 正文
- 年
- 陈述
- 郡
- 地址。。。等等
ID INT
eventID VARCHAR
sourceID INT
sourceTable VARCHAR
然后,数据将是:
ID 453
eventID 67
sourceID 345
sourceTable source_letter
来源信
ID INT
To VARCHAR
From VARCHAR
Date DATE
Text BLOB
但问题是当我想要获取连接到单个事件的所有源时
SELECT * FROM event_vs_source WHERE event_vs_source.eventID = 67;
这给了我一个数组,其中包含源表的名称,source_letter,但是如何在连接中使用它来选择正确的表并在其中查找源ID?
如果我进行单独的查询,我可以这样做,但是如果我有多个源连接到一个事件,并且它们都在不同的源表上,该怎么办
事件与源
ID 486
eventID 67
sourceID 23
sourceTable source_website
这将导致更多的单独查询
还是我的数据库设计错了?
有更好的方法吗
底线是,我希望能够向单个事件添加尽可能多的源、位置和注释,但也可以添加无限的新的和未知的未来表,但每个人都有一些数据库请求。请记住,一个人可以处理无限量的事件….在一个源表中保留id、类型和日期等公共信息,在源字段表中保留依赖类型的字段(源id、字段id、值)如何?这是我的最新想法,按照您的建议执行。但最终结果将是多个源文件表,因为一些源文件可能需要不止一个日期,而另一些源文件则需要一两个位置。我希望能够向源添加任何内容,完全没有限制。我一直在考虑在服务器上创建作为文本文件的源,而不是执行多个查询,以减少对数据库的连接/调用数量。如果不能将查询中某个单元格的内容用作另一个表的名称,那就太糟糕了。例如,从sources.sourceTable中选择*其中sources.sourceTable.ID=event.ID