首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为自定义排序顺序存储以逗号分隔的id值的缺点

为自定义排序顺序存储以逗号分隔的id值的缺点
EN

Stack Overflow用户
提问于 2014-03-19 09:07:33
回答 1查看 233关注 0票数 1

我们正在开发一个web应用程序(Rails+主干、jQuery、Javascript),用户可以在其中管理图书列表,并拖放图书,以便在列表中重新排列订单,这必须持久化。

我们有书和一个叫做书单的定制藏书,我们有两张表:书和书单。因为一本书可以属于多个书单,而一个书单是由多本书组成的,所以它们有一个m关系,我们还有另外一个表来存储映射。让我们说,我们使用这一切的目的。现在,当用户想要重新订购她书架上的书时,我们就需要存储这份订单。

我完全可以看到关于why storing ids in a column is evil的感觉,毫无疑问。如果我们将表规范化了,对于所有其他情况,我们将进行标准操作。

are quite a few approaches存储了一个额外的订单列。但是,即使假定完整性得到维护,将图书ids存储在图书列表中的逗号分隔列表中似乎也是错误的设计。

我们从来没有遇到过this..。

从用户选择*.噢,F@$%CK - 是的,这是不好的,你不能订购,计数,和(等),甚至做一个简单的报告,而不依赖于顶级语言。

因为我们只是根据图书列表id选择书籍,使用join表,就像标准方法一样。(在任何情况下,我们只是将书籍作为一个数组作为主干图书列表模型的一部分)

那么,如果我们为图书列表检索书单和图书,并在客户端(在本例中是Javascript)上以编程方式进行排序,该怎么办?基于CSV列。

这似乎是一个简单的解决方案,因为:

  • 每次用户重新订购一本书时,我们只需将所有in重新存储在这个one列中。(一个用户最多只能在一本书单上有20到30本书)。
  • 当然,我们可以简单地忽略无效ids,即在创建图书列表之后删除的书籍。

这种方法的缺点是什么,它似乎比每次更改顺序时维护排序顺序和更新其他列,或者使用浮点或权重等等都更简单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 09:19:27

据我所知,它确实违反了RDBMS.Which规则,在应用JOIN时遇到了许多困难。

希望它能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22500827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档