【发布时间】:2012-05-22 15:29:04
【问题描述】:
我正在为新的 CMS 设计数据库,但在为文件和图像构建表格时遇到了一些问题。
目前的设计是有带有文件信息的表格:
-
files:name,filename,extension,lang,size -
images:name,filename,exstension,alt
上面是特定类型的表,命名为:product_files、article_files。
他们的字段如下(product 和 images):id、image_id、product_id、position。
这些表格之所以存在,是因为不同的产品可能具有相同的图像。
问题是,我为每个用例重复这些中间表(2 个用于产品,2 个用于文章等)。
我正在考虑将它们组合在一个表格中,例如:
-
items_images带列:table、table_id、image_id、position
这是一个好方法吗?还是我应该保持原样?据我所知,我无法在将其连接到产品或文章表的表格上设置外键。
编辑:
看来我不是很清楚这个问题。我不知道如何在这里最好地显示它,所以我将解释图片(http://i.imgur.com/WrIWt.png): 忽略这些线条。
顶行是包含实际文件信息的表格。分别是文档、图像和视频。
中间行是六张桌子,分成三张,每组都连接到他们的桌子(产品和文章)。我想做的是只制作这六个中的三个,但仍然让它们同时连接到产品和文章。也许解决方案是第四张桌子,但我不知道。
【问题讨论】:
-
听起来你在那里复制了一些表格,听起来不太正常化。 “我不能在这样的表上设置外键”是什么意思?
-
我知道我在复制,但我目前也被卡住了。我想规范化它们,但也能够用外键连接表。这是当前模型的图片。我剪掉了不重要的部分,所以可能有些东西不见了。 i.imgur.com/6lD73.jpg
-
您能否使用一些显示您无法创建的 FK 的表格来编辑您的问题?我不确定你在考虑什么限制。
-
@Cylindric 您可以在上图中看到我有 6 个表。 3对2基本相同,只是连接到不同的表(产品和文章)。很快就会有第三种类型,所以我想以某种方式将它结合起来,但仍然保持关系完整性。
-
抱歉,它看起来像是一个巨大的表格组合,没有我可以遵循的布局。一般来说,如果你不能在这里用一个问题来表达你的问题,我们很难从意大利面条图中做到这一点。问题中的一些格式,也许是一些例子,对帮助我们帮助你大有帮助。
标签: mysql relational-database foreign-key-relationship