多条目维基系统(类似豆瓣图书)的数据表该如何设计?

新手上路,请多包涵

我在设计一个图书维基系统,要求每本书有多个条目:书名、作者、简要描述等,同时能保存每个图书信息的不同版本。我目前的实现方式是:

  1. 创建一个数据表,记录每个图书的信息。数据列就是上面提到的各个条目:行id,isbn,书名,作者等
  2. 每增加一个版本,就是在该数据表中增加一行记录
  3. 查询某本图书信息的所有版本,只要查询该表中所有isbn为该图书isbn的记录即可

我这样的设计有个缺点是:图书信息有好几个条目,这些条目是作为一个整体保存为一个版本的。当获取图书信息时,只能将某个记录内的所有条目作为一个整体来获取。

我希望能让每个条目独立保存,用户能够编辑某个特定的条目(比如只编辑图书描述),系统会只为该条目创建一个新的版本。当获取图书信息时,图书信息不是数据表中的一行记录,而是通过将数据表中的各个条目组合得到的。

就像豆瓣读书一样:
当编辑图书信息时,用户可以选择某个条目的所有历史版本。
当显示图书信息时,系统会自动抽取每个条目中投票最高的那一项,组合成这个图书的图书信息。

clipboard.png

因此我想知道,这样的数据表该如何设计呢?

阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题