如何在用户定义的排序顺序中呈现?

时间:2010-01-19 08:57:51

标签: sql database-design

我们要求以用户定义的顺序检索书籍 (例如,假设有3本书 - BookA,BookB,BookC),最终用户可能希望将其呈现为(BookB,BookA,BookC)或(BookC,BookA,BookB)。

  1. 我们正在考虑添加一个整数列(例如sortColumn)来捕获此订单。如果项目列表很大,这是一个不错的选择吗?

  2. 如果我们采用上述方法,那么重新计算排序顺序的最佳方法是什么,因为它可能涉及每次上移或下移图书时更新多个记录。

  3. 假设有1000本书,你如何决定正在添加的新书的'sortColumn'值。

1 个答案:

答案 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>