【问题标题】:Photo gallery DataBase structure相册数据库结构
【发布时间】:2019-09-26 00:06:48
【问题描述】:

所以,我正在构建一个大型照片库,在构建和构建数据库时我有点困惑。由于对 noSQL DB 的经验很少,这似乎是一个很大的进步。

值得一提的是,数据库将只保存照片的 url 引用,这些引用将存储在云中。

基本上,我希望每个用户有几个相册,每个相册中大约有 3000 张照片。我想让用户快速有效地过滤每个相册,但过滤的相册不能超过一个(这意味着他不能一次搜索所有照片)。

我的两个主要问题是:

  1. 哪个更合适 - SQL 还是 noSQL?
  2. 存储照片:
    • 我是否应该为每个相册存储照片,这意味着为每个相册提供一个数组字段,其中将包含 3000 个照片对象。
    • 或者我应该将照片存储为单独的集合/表格,并将每张照片引用到其相册?

请记住,高效过滤是重中之重。 任何特定的数据库推荐都将受到高度赞赏:)

谢谢

【问题讨论】:

  • "许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。 "

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


【解决方案1】:

我认为您会想要一个支持二进制对象的 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
    )

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

【讨论】:

  • 谢谢!感谢您的时间和精力。
猜你喜欢
  • 2012-02-16
  • 1970-01-01
  • 2018-10-15
  • 2010-10-30
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多