【问题标题】:Event Sourcing SQL Populate Parent and Child Table事件溯源 SQL 填充父子表
【发布时间】:2018-02-26 13:05:33
【问题描述】:

跟进问题 CQRS Read Model Design when Event Sourcing with a Parent-Child-GrandChild… relationship:

我们在示例中使用带有 SQL Server 2016 的事件溯源:家具公司。
(1) 我们有一个父子表。说一个FurnitureDescriptionTable,(父表-所有家具项目的描述)和FurnitureOrders(子-多个客户订单,指FurnitureDescription表)。这些之间的连接列应该是 SQL 中的 Guid 还是 Integer Identity?

(2) 如果是 Guid,谁生成 Guid、API 或 SQL?有什么原因吗?

【问题讨论】:

    标签: sql-server database-design foreign-keys domain-driven-design event-sourcing


    【解决方案1】:

    选择主键/外键所需的类型是 RDBMS 世界中的一个已知问题。简单的谷歌搜索会有所帮助。但还是:

    Guids 通常在应用程序端完成。当命令处理程序可以生成完整的域对象(包括身份)时,此选项很受欢迎(因为您指的是 CQRS)。否则,您需要有一个唯一的身份生成器,这可能很重要,但在某些数据库中仍然可行,例如使用 Oracle 序列。

    通常为数据库生成的 ID 选择数字。然后,只有在将行插入表时才知道新的 id。对于事件源场景,这不是一个选项,因为您只会在读取端插入,但在写入端创建对象。

    【讨论】:

    • 我认为我的问题过于简单化了,我在 stackoverflow 推荐的情况下在这里放置了新问题,这次我们在写事件存储中有 100 个关系,stackoverflow.com/questions/46289332/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 2020-05-27
    • 2021-06-24
    相关资源
    最近更新 更多