前言
如何管理网站上数量众多的图片,一直是个令人头疼的问题。是将图片集中在一张表方便管理呢还是为分散到相关文章、商品中方便业务呢?
由图片可能产生的一些应用场景,例如将图片分组用于图片复用,多种类型 banner、多张 header image,文章里面的图片,商品详情里的图片,相关推荐的图片等等,在这些不同的应用场景之下又该如何设计相关表?如何设计保持拓展性?如何在便利与扩展之间做出一个平衡?这些问题接下来的会一一讨论。
图片表的两种设计
大致上,存储图片有两种方式,直接存储和间接存储。直接存储指把所有图片信息都保存在相关表的某个字段中,例如 table_artical.header_pic,间接存储指使用第三张表来关联图片表和文章表。下面具体来看看两种存储方式的区别和优缺点。
直接存储
这里有一张文章表,下面是部分字段
table_article:
id | title | content | header_pic |
---|---|---|---|
1 | one | article one content | [{“pics”:”1”,”url”:”http://image.store.com/1.png“}] |
2 | two | article two content | [{“pics”:”2”,”url”:”http://image.store.com/1.png“}] |
每篇文章都设置了一张头图,看起来好像没什么问题。现在有了另一个需求,每篇文章要添加一张尾图,那么如何?再添加一个字段
id | title | <
---|