PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lược đồ cơ sở dữ liệu quan hệ để tìm nguồn cung ứng sự kiện

Tôi nghĩ sẽ linh hoạt hơn nếu bạn lưu trữ quảng cáo như một phần của trọng tải sự kiện thay vì dữ liệu meta. Các mối quan tâm về bảo mật nên được xử lý bên ngoài miền. Không phải mọi sự kiện đều do người dùng nêu ra, mặc dù bạn có thể tạo sự kiện giả cho họ (SysAdmin cho CronJob).

Ví dụ:

ManualPaymentMadeEvent { //store this object as details in your schema
    amount,
    by_user//In this case, developers can determine whether store the promoter case by case
}

Tôi nghĩ tên lớp là đủ. Việc thêm một bảng khác sẽ làm phức tạp việc đọc sự kiện (bởi các bảng tham gia) và tôi nghĩ rằng nó chỉ thêm giá trị khi tên lớp được đổi tên (Cập nhật một hàng trong bảng loại sự kiện). Nhưng tôi nghĩ rằng nó không gây ra nhiều rắc rối bằng cách sử dụng

update domain_events set 
    aggregate_type = 'new class name'
where aggregate_type = 'origin class name'

Tôi không chắc mình hiểu các nhóm sự kiện, bạn có thể giải thích thêm không?

Đôi khi các sự kiện được sử dụng để tích hợp nhiều ngữ cảnh. Nhưng mỗi sự kiện chỉ được nêu ra trong một ngữ cảnh. Ví dụ:một ManualPaymentMadeEvent được nâng lên trong ngữ cảnh đặt hàng và một trình liệt kê sự kiện trong ngữ cảnh vận chuyển cũng sử dụng nó, coi nó như là yếu tố kích hoạt bắt đầu vận chuyển.

Tôi thích sử dụng cho mỗi người dùng cơ sở dữ liệu (thuật ngữ oracle) cho mỗi ngữ cảnh. shipping.domain_events cho ngữ cảnh giao hàng và đặt hàng.domain_events cho ngữ cảnh đặt hàng.

Đây là giản đồ trong axon-framework có thể hữu ích

create table DomainEventEntry (
    aggregateIdentifier varchar2(255) not null,
    sequenceNumber number(19,0) not null,
    type varchar2(255) not null,  --aggregate class name
    eventIdentifier varchar2(255) not null,
    metaData blob,   
    payload blob not null, -- details
    payloadRevision varchar2(255),
    payloadType varchar2(255) not null, --event class name
    timeStamp varchar2(255) not null
);

alter table DomainEventEntry
    add constraint PK_DomainEventEntry primary key (aggregateIdentifier, sequenceNumber, type);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đếm tần số tự do của mảng hoặc đối tượng jsonb

  2. Chuyển đổi hàm đệ quy sang dạng xem

  3. Django, mod_wsgi, psycopg2 Không đúng Định cấu hình:Lỗi khi tải mô-đun psycopg2:Không có mô-đun nào có tên _psycopg

  4. Array of Enum trong Postgres với SQLAlchemy

  5. ĐẶT HÀNG THEO các cột đôi khi trống bằng Active Record &Rails