我正在开发有照片库的网站。照片按某种层次结构组织 - 它们包含在相册中,相册包含在类别中
关于数据库设计的第一个想法是制作3个表:'照片',#39;专辑'和'类别'
记录照片'拥有唯一的ID - 主键,并链接到“相册”'使用' album_id'场。
在相册中记录'也有唯一身份证,并且与“'类别”相关联。使用' category_id'字段。
我正在做网站前端部分的朋友告诉我,他只想通过增加/减少照片ID来切换相册中的照片。使用当前的数据库设计并不总是可行的。所以我想出的另一个数据库设计是为每张专辑创建一个新表格,因此我可以为一张专辑中的照片创建1,2,3 ......订单。
这是一个很好的数据库设计吗? 我有哪些替代方案?
答案 0 :(得分:2)
作为一般规则,前端设计(UX)不应控制后端设计。它可以通知它,但不能控制它。这是一个很好的例子,说明他正在采取合理的要求(需要在给定专辑的照片之间轻松移动),但试图根据错误的假设来指定错误的数据库模式模型。
您的模型更清晰(每个实体类型有一个表格,例如照片,相册和类别)。我怀疑你只需要为你的后端提供一个带有专辑ID的方法的API,并返回该专辑中的照片列表。然后他可以对结果进行排序,并随心所欲地做任何事情。第一种方法可以返回有关每张照片的详细信息(包括完整图像)或缩略数据(如缩略图),并允许第二次方法调用返回照片的完整数据/图像。