mysql - 文件和图像的表结构

标签 mysql relational-database foreign-key-relationship

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

当前的设计是包含文件信息的表格:

  • 文件:名称文件名扩展名lang尺寸
  • images:namefilenameextensionalt

它们上方是特定类型的表,名称为:product_filesarticle_files。 它们具有类似(对于 productimages)的字段:idimage_idproduct_id位置

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

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

  • items_images 包含列:tabletable_idimage_idposition

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

编辑:

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

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

最佳答案

您可以使用如下表结构:

id, image_id, pointer_id, 位置, 类型

在哪里类型可以判断它是产品、文章等。

关于mysql - 文件和图像的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705164/

相关文章:

mysql获取具有限制的多个列的平均值

python - 此代码在我的数据库中搜索手机型号,我希望能够选择按品牌进行搜索

database - 6NF和历史属性数据

mysql - MySQL 'NOT' 关键字中的哪些子句可以与哪些子句一起使用?确实特别是在 MySQL 中

FK 字段上的 hibernate createCriteria 对我不起作用

php - 如何在 codeigniter 中将数据从 post 传递到 ajax

mysql - 针对不同手机的数据库设计建议

mysql如何确定删除时做什么?级联、限制?

mysql更新相关行

mysql - 从存储过程中创建表时出错