图像数据库设计

时间:2013-10-14 07:51:39

标签: sql database database-design database-connection database-schema

我正在设计我的数据库结构,我需要一些建议: 我有可以从类别中选择的图像,其他人可以上传,对于每个好友,我应该保存选择的图像......

我有几个选择:

  1. 我可以将上传的图像和预定义的图像放在同一个表格中并放置一个标志来区分它们,我知道使用标志可能有风险..

  2. 我可以将上传的图像和预定义的图像放到2个不同的表中,但是在这种情况下,如果我需要将选择的图像的ID放在好友表中,我将无法知道从哪个表这个给出了id(因为图像id是递增的整数)

  3. 那我怎么设计呢?哪种方法更好,为什么?

1 个答案:

答案 0 :(得分:0)

我会做出这些假设:

  • 您有一张包含预定义图片的表格。每张图片都有一个ID。
  • 用户可以上传自己的图像。上传的图像只能由此用户使用。
  • 每位用户只能上传一张图片。

在这种情况下,您应该在好友表中定义两列,图像 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