- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了很多关于 DDD 的文章,并注意到大多数在持久化到数据库时都使用 GUID 作为他们的 ID。他们说 GUID 可以很好地扩展并且自动递增 ID 在可扩展性方面是一个很大的禁忌。
我现在很困惑是否使用GUID
或 auto-increment
.
基本上域是关于membership system (binary tree). (tracking of register members)
第一个要求是我们应该有一些东西可以在系统中唯一标识它们(我们称之为 Account No.
),也许是 7digit。
接新Members
可以被其他人注册 Member
.我们称之为转介。
现在我打算做的是拥有 MemberId
GUID 类型作为 DomainObject Id,它用作主键,用于连接、外键(在 Referral 上,referer_id 将是 GUID MemberId
)。 AccountNo
将是一个自动增量列,或者它可能会通过 MAX() + 1 从存储库中获取。主要用于系统和链接中的搜索功能。
DomainObject 的 ID 是否应该对系统用户隐藏,因为它只是一个技术实现?
两者结合可以吗? GUID 作为数据库中的 row_id(代理键)。和(自然键)的自动增量?
可以排除AccountNo
吗?来自构造函数,因为它无论如何都会自动递增?那么需要强制执行不变量呢?所以从存储库获取下一个 ID 是要走的路,包括 AccountNo
在构造函数中?
我应该坚持使用自动递增 ID 而忘记 GUID,删除 MemberId
并让 AccountNo
是DomainObject 的ID?
笔记:
我不是在构建某种类型的下一个 facebook。
我只想练习 DDD 的战术方面,以了解如何在了解其优缺点的情况下做出艰难的架构决策。
我只想练习 DDD 的战略方面,以了解如何在了解其优缺点及其实现的情况下做出艰难的架构决策。
如果我们将成员(member)注册分为3个场景:
最佳答案
很可能你的问题太多了,无法给你一个完整的答案,因为ID设计并不简单,而且有很多方面。我可以推荐 Vaughn Vernon 的书“Implementing DDD”,它有一节专门介绍身份设计(第 5 章“实体” - 唯一身份)。
无论如何,我都会尝试为您指明正确的方向,而不是背诵该章节中的所有内容:-)。
你需要什么?
您已经提出了一些有关 ID 设计的问题,但您还需要提出更多问题。只有这样,您才能决定 GUID、DB 生成的 ID 还是不同的 ID 是否合适。
关于database-design - 使用 Natural key 作为 DomainObject 的 ID 或 GUID + 自增域驱动设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31672747/
1、修改数据 复制代码代码如下: DataRow dr =
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
我是一名优秀的程序员,十分优秀!