管理SQLite数据库子集版本



我们的研究团队有一个内部sqlite数据库,其中有数千条记录,其中许多是专有的,因此是私有的。我们还有一个数据库的发布版本,其中包含数据的一个子集:200条记录。我正在尝试确定跟踪哪些记录已发布的最佳方法,并提前考虑如何跟踪版本1、2、3等中发布的记录。理想情况下,我将能够获取具有特定版本号或更低版本号的所有记录,以创建数据库的可发布子集。

我们团队有两个想法:

  1. 在数据库中添加一个新表,用于跟踪所有已发布数据的主键、表名和发布号,
  2. 为每个表添加一个新列,默认值为NULL,其中包含已发布记录的发布号

有什么公认的方法来做这件事吗?我尝试寻找最佳实践,但这听起来有点像一个独特的场景。

选项2可能是最容易实现的,并且可以快速索引-但是您可能会对数据进行反规范化。

选项1是规范化数据结构的首选选项,但在编写SQL时需要做更多的工作。

我很想选择选项1。

这样,原始数据将不受影响,特别是如果您决定将来不再需要该子集(您将不会有冗余列)。

虽然你可以很容易地编辑这个表,但是处理生产中的"实时"数据通常不是一个好主意。

也就是说,两个选项都是完全可以接受的。

最新更新