照片库 - 数据库设计

时间:2011-02-27 12:36:11

标签: mysql database database-design

这是我在照片库上的数据库设计,我喜欢反馈或者可以改进什么?

photos_category
- photocat_id (P)
- name
- slug
(5, 'Cars', 'cars')



photos_albums
- album_id (P)
- photocat_id (F)
- name
- description
- active
(20,5,'BMW','Nice BMW cars',1)

photos
- photos_id (P)
- album_id (F)
- image
(33,20,'bmw_car4.jpg')

bmw_car4.jpg是原始尺寸,它位于: /gallery/original/bmw_car4.jpg

前端(调整大小):

缩略图:/gallery/thumbs/bmw_car4.jpg

图片:/gallery/images/bmw_car4.jpg

2 个答案:

答案 0 :(得分:7)

你的设计对我来说似乎很正确:

  • 简单而实用,
  • 没有重复的信息,
  • 您可以从一个对象中找到相关的信息


我只想,如果你计划有很多照片,添加一些子目录方案,以避免在单个目录中有太多文件/gallery/original/,以及调整大小图像的目录)

您可以根据上传日期(月份或日期,具体取决于图像数量)添加一些散列机制,或类似的东西。
例如,您可以:

  • /gallery/original/2011/01/:1月上传的所有图片
  • /gallery/original/2011/02/:在二月份上传的所有图片

然后,您将把路径存储在photos表中,而不仅仅是文件的名称。

答案 1 :(得分:0)

OOOOH!绝对必须在图像表中包含一个存储doctype的字段。它非常便于图像检索,如果您忘记限制上传的文件,您可以一目了然地看到哪些类型正在上传,您不想在那里上传,以及您想要支持的类型和当前类型别'吨。我让人们上传包含你看到的图像的文字文件,我想,"嘿嘿"并增加了对它们的支持。将文件存储在数据库之外是个好主意。当我使用数据库实际存储图像本身时,我犯了alt,名称,描述,创建,最后修改的错误,图像数据的内容大小意味着获得结果非常慢。你做得很好。