我正在为一位艺术家设计一个 FAN 网页,更具体地说,是唱片部分。唱片包括整个艺术家 CD、黑胶唱片、8 轨、盒式磁带等。到目前为止,我已经制作了一些相当不错的东西,但是当需要处理发行版的所有艺术作品时,我陷入了困境,而不仅仅是封面。让我解释:
我的模型只处理封面。逻辑如下:
一个版本包含 1 个封面,而 1 个封面可以在多个版本中使用(对于一个版本的封面与主要版本几乎相同的版本来说,这种情况经常发生。)
为此,我建立了 2 个表:release
和cover
release (release_id, title, cover_id,...)
cover (cover_id, filename, width, height,...)
在我决定为发布添加更多艺术品之前,该模型一直运行良好。从那以后,我被困住了,无法让自己的头脑清晰地思考。
这是我正在尝试做的事情:
我正在尝试向发行版添加更多艺术品,例如封底、镶嵌、a 面、b 面、小册子页面等。艺术品需要按特定顺序排列(先是封面,然后是封底,等等) .
我正在努力实现这一目标。我应该保留一对多模型并为其余的艺术品添加一张桌子吗?我是否应该将所有图像混合在一张表中(我们称之为艺术品)?如果是,我该如何处理封面以便每个版本只有 1 个封面。封面是否应该保持 1:m 的关系,因为艺术作品的其余部分最终可能会成为 1:1 的关系?如果所有图片都应该放在一张表中,那么如何定位图片以及如何使封面和发行版的主封面独一无二?如此多的问题导致我建立了如此多的模型,以至于在这一点上我完全迷路了!
这是基础知识:
- 一位艺术家唱片(CD、盒式磁带、8 轨、单曲、黑胶唱片等...)
- 有些发行版有多达 12 个版本,很多时候主要版本的封面与版本的封面相同。
- 我需要将一件艺术品作为发行版的主要艺术品(大多数时候最终会成为封面)
- 我需要按特定顺序显示所有艺术品......(封面总是第一个显示)
你会如何处理这个问题?
这就是我建模的方式:
所有版本都在
releases
表中,所有艺术品都在artwork
表中。该
release_artwork
表将两者连接起来,display_order
列强制执行显示顺序。用 插入封面display_order=1
,然后根据需要用 2、3、4 等插入其余部分(封底、镶嵌等)-ORDER BY display_order ASC
然后,A simple 将为您处理订单。如果你想双重确保封面是第一位的,你总是可以添加一is_cover
列release_artwork
并将其设置为 1 作为封面。