我一直在閱讀有關事件採購的信息,儘管我發現它對於幾個問題是一種非常自然的方法,但我並不十分了解如何在實踐中存儲事件。使用事件採購時存儲事件
在網上搜索一下我發現由Vaughn Vernon談論一種簡單的方法來存儲DDD中的聚合物。雖然它並不專門針對事件採購,但他的目的是使用PostgreSQL來存儲域事件。
在他的方法中,我們有一個表Events
,其中一個id
和一個JSON data
字段。這給了很大的自由度,因爲我們可以存儲任何JSON數據,因此我們可以存儲各種事件。
但有對應的所有所有聚集單個表中的事件,讓我有點擔心。
因此,當我們存儲事件以使用事件採購時,我們應該如何進行?我可以看到三種選擇:
遵循用於文章上的域事件的想法並將所有內容存儲在單個表中。
爲每個事件創建一個表。這裏的缺點是我們需要跟蹤每個聚合的事件,並且對於每個聚合可以有各種事件。所以這很容易導致一個巨大的表格編號。
爲每個聚合創建一個表並在那裏存儲該聚合的所有事件。儘管我們在同一個表中彙總了不同類型的事件,但它們都與相同的聚合有關。
這三個選項中哪一個更合理?如果沒有,在使用事件採購時存儲事件的正確方法是什麼?