嵌入式图像顺序



让我们考虑一些电子商务网站产品的简单表

product (id SERIAL PRIMARY KEY, title TEXT, description TEXT, price REAL)

和嵌入式图像的单独表格

product_images (id SERIAL PRIMARY KEY, product_id INTEGER, image_url VARCHAR(256))

我想设置在现场显示这些图像的特定顺序。我提出的第一件事是:添加数字列"位置"到" product_images",该列表示该顺序中的位置(例如位置= 2表示图像显示第二个(。但是在这种情况下,当删除某些图像时,数据完整性可能会丢失。还有其他选项吗?

您可以在您提到的 product_images 表中添加 position 列。

然后您有多个解决方案:

  1. 您始终在此列上使用an order by子句选择,因此,即使位置之间存在差距,图像也可以在前端进行良好分类。在您的后退中,让用户设置他想要的任何整数。

  2. 您想要始终具有连续的位置编号,因此您必须创建一个trigger WICH将对已删除图像的所有上级位置降低所有位置。这种情况将迫使您考虑现有帖子上的更新,删除和新图像。

您可以形成图像的层次结构,而不是位置,例如添加parent_image_id的其他列(对于第一个位置,它将为null(,因为每个产品都会有不同的图像继承结构。在介绍时,请按照父母的层次结构致电,该层次结构将解决您的数据完整性问题。参考这个

最新更新