相关疑难解决方法(0)

在数据库中存储有序列表的最佳方法?

在数据库中存储"有序列表"的最佳方法是什么,以便更新它们(添加,删除和更改条目的顺序)很容易?

考虑一个数据库,其中包含用户和电影的表格.每个用户都有一个喜欢的电影列表.

由于许多用户可以喜欢同一部电影,因此我将用户和电影分开,并使用第三张表连接它们,即用户电影.

usermovies包含用户和电影的ID以及"订单号".订单号用于为用户订购电影列表.

例如,用户Josh可能具有以下列表:

  1. 普罗米修斯
  2. 黑衣人3
  3. 独裁者

和用户杰克可能有一个列表,如:

  1. 独裁者
  2. 普罗米修斯
  3. 主力舰
  4. 白雪公主与猎人

因此,他们分享一些收藏,但不一定按照相同的顺序.

我可以使用查询获取每个用户的电影ID列表:

SELECT movie_id FROM usermovies WHERE user_id =? ORDER BY order_number
Run Code Online (Sandbox Code Playgroud)

然后,使用有序的movie_ids,我可以使用另一个查询获取电影列表

SELECT name FROM movies WHERE id in (?,?,?) ORDER BY FIELD (id, ?,?,?)
Run Code Online (Sandbox Code Playgroud)

所以查询工作,但更新列表现在看起来真的很复杂 - 是否有更好的方法来存储这些信息,以便很容易获得用户x的电影列表,添加电影,删除它们并更改列表的顺序?

mysql database-design

19
推荐指数
2
解决办法
9765
查看次数

SQL UPDATE语句用于在两行中切换两个值

我正在使用SQL Server在两行中交换两个值.让我展示:

[ord] [name]
1     John
4     Jack
7     Pete
9     Steve
11    Mary
Run Code Online (Sandbox Code Playgroud)

说,我需要交换[ord]数字为"Pete"和"Steve"使这个表格像这样:

[ord] [name]
1     John
4     Jack
9     Pete
7     Steve
11    Mary
Run Code Online (Sandbox Code Playgroud)

这似乎是一项微不足道的任务,但我似乎无法为它编写SQL UPDATE语句.

sql t-sql sql-server sql-update

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

database-design ×1

mysql ×1

sql ×1

sql-server ×1

sql-update ×1

t-sql ×1