【问题标题】:Table structures for files and images文件和图像的表结构
【发布时间】:2012-05-22 15:29:04
【问题描述】:

我正在为新的 CMS 设计数据库,但在为文件和图像构建表格时遇到了一些问题。

目前的设计是有带有文件信息的表格:

  • files: name, filename, extension, lang, size
  • images: name, filename, exstension, alt

上面是特定类型的表,命名为:product_filesarticle_files。 他们的字段如下(productimages):idimage_idproduct_idposition

这些表格之所以存在,是因为不同的产品可能具有相同的图像。
问题是,我为每个用例重复这些中间表(2 个用于产品,2 个用于文章等)。

我正在考虑将它们组合在一个表格中,例如:

  • items_images 带列:tabletable_idimage_idposition

这是一个好方法吗?还是我应该保持原样?据我所知,我无法在将其连接到产品或文章表的表格上设置外键。

编辑:

看来我不是很清楚这个问题。我不知道如何在这里最好地显示它,所以我将解释图片(http://i.imgur.com/WrIWt.png): 忽略这些线条。

顶行是包含实际文件信息的表格。分别是文档、图像和视频。
中间行是六张桌子,分成三张,每组都连接到他们的桌子(产品和文章)。我想做的是只制作这六个中的三个,但仍然让它们同时连接到产品和文章。也许解决方案是第四张桌子,但我不知道。

【问题讨论】:

  • 听起来你在那里复制了一些表格,听起来不太正常化。 “我不能在这样的表上设置外键”是什么意思?
  • 我知道我在复制,但我目前也被卡住了。我想规范化它们,但也能够用外键连接表。这是当前模型的图片。我剪掉了不重要的部分,所以可能有些东西不见了。 i.imgur.com/6lD73.jpg
  • 您能否使用一些显示您无法创建的 FK 的表格来编辑您的问题?我不确定你在考虑什么限制。
  • @Cylindric 您可以在上图中看到我有 6 个表。 3对2基本相同,只是连接到不同的表(产品和文章)。很快就会有第三种类型,所以我想以某种方式将它结合起来,但仍然保持关系完整性。
  • 抱歉,它看起来像是一个巨大的表格组合,没有我可以遵循的布局。一般来说,如果你不能在这里用一个问题来表达你的问题,我们很难从意大利面条图中做到这一点。问题中的一些格式,也许是一些例子,对帮助我们帮助你大有帮助。

标签: mysql relational-database foreign-key-relationship


【解决方案1】:

您可以使用如下表结构:

id、image_id、pointer_id、位置、类型

类型将告诉它是产品、文章等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2011-08-17
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多