![]() |
1
10
永远不要让用户有权分配或创建底层对象标识符。这些必须由系统维护。 想象一下,如果用户选择了一个已经在使用的id,那么试图找出一个相关实体实际上与哪个实体相关的噩梦。 相反,您应该有一个常规的实体ID,它是系统为所有依赖对象的链接分配和使用的某种类型(int、guid等等)。然后拥有某种类型的“外部”id,用户可以将自己的标识符放入其中。 也许在某种程度上与外部系统有关,也许不是。关键是,不管他们做什么,你都能保持自己的一致性。 |
![]() |
2
3
通常要做的是指定自己的,通常是隐藏的,内部使用的标识符。然后创建第二个标识符,用户可以将其用作单独的数据字段。另外,如果您尝试建议下一个ID,可能会遇到一些并发问题。 |
![]() |
3
0
我在与零售商合作时也看到过类似的情况,有一个id和一个产品的SKU,SKU本身可能是id,但我们都有一个好的设计。 |