我们要求以用户定义的顺序检索书籍 (例如,假设有3本书 - BookA,BookB,BookC),最终用户可能希望将其呈现为(BookB,BookA,BookC)或(BookC,BookA,BookB)。
我们正在考虑添加一个整数列(例如sortColumn)来捕获此订单。如果项目列表很大,这是一个不错的选择吗?
如果我们采用上述方法,那么重新计算排序顺序的最佳方法是什么,因为它可能涉及每次上移或下移图书时更新多个记录。
假设有1000本书,你如何决定正在添加的新书的'sortColumn'值。
答案 0 :(得分:1)
如果您正在使用Hibernate或JPA,就像在您的域对象上拥有List并将列表的顺序存储在列中一样简单(Hibernate / JPA会为您自动管理) 然后,您可以与List进行交互以进行重新排序。
User->包含UserBooks列表,UserBook具有用户,书籍和订购
如果您使用hbm.xml:
<list name="books" lazy="true" cascade="all-delete-orphan">
<key column="iUserBookId"/>
<index column="iOrdering"/>
<one-to-many class="foo.bar.UserBook"/>
</list>