我正在尝试为新数据库建模。要求之一是保留不同行的版本。这里是同一对象的 2 个版本的示例:
ID | UID | Name | Date
--------------------------------------------------------------
1 | 734FD814-024D-4795-AFD0-34FECF89A13A | Alpha | 2013-02-08
2 | 734FD814-024D-4795-AFD0-34FECF89A13A | Bravo | 2013-02-09
为了有这个表的外键作为参考,我需要指定一个主键。这两个候选者是ID
第UID
一个作为auto increment
数字,第二个作为每个对象手动生成的唯一标识符。
限制:
选择ID
为主键时:
- 创建对象的新版本时,对旧版本的所有引用都变得无效,必须更新
- 手动更新每个插入的所有引用不是一个选项,非常繁重
选择UID
为主键时:
UID
不是唯一的,因此不能单独使用,必须与其他字段关联并在复杂主键中使用- 将使用的所有其他字段也可能会更改外键引用。
关于克服这些限制的最佳方法(尽可能轻)有什么建议吗?
PS:我正在使用 OrmLite 使用 POCO 对象对数据库进行建模。