有一些讨论,在我的团队关于更新实体的数据以及如何最好地处理它。这是一个安全框架,那么这些制约因素和想法。

  1. 每个表在DB有一PK这是一个guid,这是必需的,用于我们的多节点聚类方案。我们的想法是,我们不想让这个实体的客户通过API因为它可以做两件事情,
    1. 给他们更多的信息,即需要为他们的工作并给予黑客有关的更多信息系统。
    2. 支持噩梦是一个客户硬编码,以此标识以某种方式如果我们需要改变我们的PK的客户都会受到影响。

解决方案是露天关键的角色对象的项目,如与一个独特的名称和领域,一起提高的独特性,但是更新这些价值观的挑战,因为你需要指定的老的和新的价值观,以更新,或者通过两个目的在原有的和新的对象,这样我们就可以找到一个更新。一种杂乱,

另一种办法是让一个备用的钥匙和具有这暴露客户他们可以使用它的所有他们想和我们不在乎因为它不是绑到我们的PK。

似乎每个人都这些天只是使用PK为ID实体没有问题,不知道该如何说服我们的团队的veterns从怀旧编天。

另一个问题是如何支持局部更新,问题是,你有实体,有10性质,4集合,等等。与一名+领域组合和指定哪些财产的更新而不是的拉下个整体对象改变1段,送回为更新。我说的懒载的集合,但不肯定,如果部分更新才有意义。

想法?

谢谢!

有帮助吗?

解决方案

我的做法对于一个安全框架将是这样的:

  • 给任何在数据库内部的身份证件(身份列顺序,无论你的数据库的支持。"本地产生的id列"在休眠发言).最终,你会需要它并复古的配合是很多的工作。

  • 如果你需要手ID用户,产生随机数量,检查,它没有被使用,将其连接到一个内部标识,然后把它给用户。 从来没有 手出来的内部和ID 从来没有 使用标识可以猜到了饼干。

作为局部更新,它们才开始做有意义,如果你有很多的对象有很多的属性。10属性的,我会说"过早的优化."

其他提示

使用天然的关键,如果您需要获得id给客户。这不是那么容易实现,但这是正确的方式。

你能提供点有关的更多详细信息,这些局部更新?我不得到它。:/

使用Guid在每个表作为一个主要关键听起来像是自找麻烦。我还没有看到这种做法采取任何地方除非我真的误解。为什么不仅仅是问题的一个UID到每个用户和工作与UID?

这种方法是最常见的所有公司。UID不是 PII 所以你是好法律上是为从安全的观点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top