我有以下数据库设计(保持基本信息):
TABLE monument
PRIMARY KEY id
name
TABLE restorer
PRIMARY KEY id
name
TABLE project
PRIMARY KEY id
name
TABLE restorer2project
FOREIGN KEY restorer_id REFERENCES restorer(id),
FOREIGN KEY project_id REFERENCES project(id)
PRIMARY KEY (restorer_id, restoration_project_id)
TABLE monument2project
FOREIGN KEY monument_id REFERENCES monument(id)
FOREIGN KEY project_id REFERENCES project(id)
PRIMARY KEY (monument_id, project_id)
项目可以有很多恢复者,并且有很多古迹。也可以在以后以相同的关系,但不同的日期重复项目。 我想创建表女巫将存储图片。
TABLE picture
PRIMARY KEY id
reference_to_different_tables
是否可以指向一列中的不同表格? 如果有,怎么样? 这是一个很好的设计(对我来说很自然,我可以设想用图片创建更多的桌子)
其他方法是引用其他表中的图片,但是我需要某种映射表,但不确定它是否也是好的设计。
答案 0 :(得分:0)
从数据库的角度来看,您不能指向不同的表格。 它可以一次引用一个表。 我可以想到三种解决方案:
artifact
,monument
和restorer
说project
。后三个表将主键作为artifact
表中的外键。这样,您可以在图片表中使用单列,这将引用artifact
表。picture
表中指定多个列。如果您使用任何持久性框架,那么第一个解决方案也可以解决动态查询问题。