图片库数据库结构

时间:2019-05-08 09:35:57

标签: sql database data-structures nosql photo-gallery

因此,我正在建立一个大型照相馆,而在构建和结构化数据库方面我有点困惑。缺乏使用noSQL DB的经验,这似乎是一大进步。

重要的是,数据库仅保留照片的url引用,这些照片将存储在云中。

基本上,我希望每个用户都有一些相册,并且每个相册中约有3000张照片。我想让用户快速有效地过滤每张相册,但最多过滤一张相册(这意味着他无法一次搜索所有照片)。

我的2个主要问题是:

  1. 哪种更合适-SQL还是noSQL?
  2. 存储照片:
    • 我应该为每个相册存储照片吗,这意味着给每个相册一个数组字段,其中将包含3000个照片对象。
    • 还是我应该将照片存储为单独的收藏夹/桌子,并分别引用它们的相册?

请紧记有效过滤是高度优先事项。 任何特定的数据库建议将不胜感激:)

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您想要一个支持二进制对象的SQL数据库,例如MariaDB,它对于在线/ Web应用程序非常有效。我猜基本的数据库结构可能是这样的:-

create table ALBUMS (
    user_id     integer,
    album_id    integer,
    album_name  text
    )

create table PHOTOS (
    album_id    integer,
    photo_name  text,
    photo_data  blob
    )

显然,您将需要考虑键和索引以使其更有效,并且毫无疑问,您将需要添加其他元数据作为额外的列。假设相册没有固定的照片顺序。如果他们这样做,您将需要一个 列,并将要在您的select语句中按该列排序。