【问题标题】:Database design for images图像数据库设计
【发布时间】:2013-10-21 17:56:27
【问题描述】:
我正在设计我的数据库结构,我需要一些建议:
我有可以从类别中选择的图像,并且可以上传其他图像,我应该为每个好友保存选择的图像...
我有几个选择:
我可以将上传的图片和预定义的图片放在同一个表中,并放置一个标志来区分它们,我知道使用标志可能会有风险..
我可以将上传的图像和预定义的图像放入 2 个不同的表中,但在这种情况下,如果我需要将所选图像的 id 放入好友表中,我将无法知道这是从哪个表中id 已给出(因为图像 id 是一个递增的整数)
那么我该如何设计呢?哪种方法更好,为什么?
【问题讨论】:
标签:
sql
database
database-design
database-connection
database-schema
【解决方案1】:
我会做出这些假设:
- 您有一个包含预定义图像的表格。每张图片都有一个 id。
- 用户可以上传自己的图像。上传的图片仅供该用户使用。
- 每个用户只能上传一张图片。
在这种情况下,您应该在好友表中定义两列,image 和 imageID。
为这些列定义默认值,image 为 NULL,imageID 为 1。
在 imageID 和predefined_images 表之间定义一个参照完整性约束。
如果 image 列为 NULL,您的程序应该加载 imageID 中指定的图像。
例如:
SELECT COALESCE( b.image, p.imagedata )
FROM buddy b, predefined_images p
WHERE b.imageID = p.ID