我们正在开发一个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列。
这似乎是一个简单的解决方案,因为:
这种方法的缺点是什么,它似乎比每次更改顺序时维护排序顺序和更新其他列,或者使用浮点或权重等等都更简单。
发布于 2014-03-19 09:19:27
据我所知,它确实违反了RDBMS.Which规则,在应用JOIN时遇到了许多困难。
希望它能帮到你。
https://stackoverflow.com/questions/22500827
复制相似问题