【问题标题】:Is it ok to create a lot of tables in relational database?在关系数据库中创建很多表可以吗?
【发布时间】:2018-02-22 06:14:34
【问题描述】:

我正在开发具有照片库的网站。照片以某种层次结构进行组织 - 它们包含在相册中,相册包含在类别中。
数据库设计的第一个想法是制作 3 个表:'photos'、'albums' 和 'categories'。
“照片”中的记录具有唯一的 id - 主键,并使用“album_id”字段链接到“相册”。
'albums' 中的记录也有唯一的 id,并使用 'category_id' 字段链接到 'categories'。

我正在做网站前端部分的朋友告诉我,他想通过增加/减少照片 ID 来在相册中的照片之间切换。使用当前的数据库设计并不总是可行的。所以我想出的另一个数据库设计是为每个相册创建一个新表,因此我可以为相册中的照片建立 1、2、3……的顺序。

这是一个好的数据库设计吗?
我有什么选择?

【问题讨论】:

    标签: database-design


    【解决方案1】:

    一般来说,前端设计 (UX) 不应控制后端设计。它可以通知它,但不能控制它。这是一个很好的例子,说明他有一个合法的需求(需要在给定相册的照片之间轻松移动),但试图基于错误的假设来规定一个错误的 DB 模式模型。

    您的模型更加简洁(每个实体类型都有一个表,例如照片、相册和类别)。我怀疑您只需要为您的后端提供一个 API,该 API 带有一个获取相册 ID 并返回该相册中照片列表的方法。然后,他可以对结果进行排序,并对它们做任何他想做的事情。第一种方法可以返回有关每张照片的详细信息(包括完整图像)或缩写数据(例如缩略图),并允许返回照片的完整数据/图像的第二种方法调用。

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2020-05-22
      • 2010-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多