假设我在数据库中编码了一系列文章,这些文章显示在网站的前端。
如果添加了对自定义排序的支持,那么在数据库中如何/应该如何表示?
P.S:可能存在一个文章显示在多个列表中的情况。
答案 0 :(得分:3)
在数据库中存储用户定义的排序的唯一方法是作为表中的数据行。为此,您需要
列前两个很容易。存储订单有几种不同的方法。设计目标通常是减少重写订单的需要。
create table user_defined_order (
user_id integer not null references users (user_id),
article_id integer not null references articles (article_id),
sort_order <sort_data_type> not null,
primary key (user_id, article_id),
unique (user_id, sort_order)
);
最后一个约束unique (user_id, sort_order)
与应用程序有关。
sort_data_type选项
不同的数据类型为您提供了插入和更改订单的不同选项。最常用的是
答案 1 :(得分:2)
如果我理解正确,那么每个用户都可以按不同的顺序显示订单。假设每个用户都有一个id,那么你需要一个由三个字段组成的表,即用户id / article id / display order,其中user id和article id为表提供了一个复合主键。