1

我正在阅读 Ensembles 文档,其中全局标识符在对象生命周期内永远不应该改变。但是,我有一个 Tag 对象,它只包含一个名称属性(一个字符串)。同样根据 Ensembles 文档,标签名称可以作为全局标识符返回,这实际上比返回 UUID 更好,原因很明显。

我的问题是,由于允许用户在我的应用程序中重命名标签,我应该从数据库中删除标签对象并重新创建它,还是重命名标签对象被认为是安全的?(重命名标签对象会导致应用返回新的标签名称作为全局标识符,这似乎与对象整个生命周期内不更改全局标识符的警告冲突)

谢谢。

4

1 回答 1

3

您不应该更改全局 id,因此标签对象应该被认为是不可变的。您可以删除它们,或插入新的,甚至是在其他设备上创建的。但永远不要更改全局 ID。

我的建议是在用户重命名时创建一个新的标签对象。根据您的模型,这可能意味着将关系从一个标记对象更改为另一个,但这应该很好用。

全局 ID 的好处是即使您同时在两个设备上创建相同的标签,Ensembles 也可以合并关系。

于 2016-04-20T17:40:58.833 回答