Hãy nói rằng tôi có thực thể điển hình xeDDD: lớp con & các đơn vị gốc
class Car : Entity
{
public double MaxSpeed { get; set; }
public Color Color { get; set; }
/* ... */
}
thực thể này, trong mô hình tên miền của tôi, sẽ là đơn vị gốc của một tổng hợp.
Bây giờ, giả sử tôi chuyên chuyên về ô tô. Tôi tạo ra một Ferrari, và các chủ sở hữu hạnh phúc của Ferraris muốn gọi cho họ bằng một biệt danh:
class Ferrari : Car
{
public string Nickname { get; set; }
}
Hãy nói rằng tôi có tổ chức khác, các Công ty thực thể. Nó sẽ là thực thể gốc gốc của một số khác Tổng hợp. Có nhiều người đang làm việc trên một công ty, được đại diện bởi tổ chức Người. Người có thể có xe hơi. Nhưng Tổng thống của một công ty thường là rất phong phú và loại người này, họ có Ferraris:
class President : Person
{
public Ferrari Ferrari { get; set; }
}
Trong tình huống này, tôi có tổ chức Tổng thống, là người bên các Công ty tổng hợp, đang giữ một tham chiếu đến một chiếc Ferrari, một chuyên môn của thực thể gốc của một tổng hợp khác.
Điều này có đúng theo quan điểm của DDD không? Tôi có nên/nên xem xét việc chuyên môn hóa các thực thể gốc là các thực thể gốc của cùng một tổng hợp không? Tôi có nghĩa là, trong tên miền tôi mô tả, là thực thể Ferrari cũng là thực thể gốc của xe tổng hợp (kể từ Ferrari cũng là một chiếc xe)?
Bây giờ chúng ta hãy nói rằng tôi phải tồn tại mô hình này cho một cơ sở dữ liệu. Tôi nghĩ rằng câu hỏi của tôi không phụ thuộc vào khuôn khổ OR/M mà tôi sẽ sử dụng.
Làm cách nào để tôi tạo bảng giữ Ô tô? Tôi có nên xây dựng một bảng ô tô duy nhất, với cột "CarType" (giá trị có thể có: "Xe hơi", "Ferrari") và cột Biệt hiệu không có giá trị không?
Hoặc tôi có nên xây dựng một bảng cho Ô tô và bảng cho Ferraris, cái sau có PK FK của Ô tô không?
Cảm ơn!
Tuyệt vời! Cảm ơn bạn! Trên thực tế, trong hệ thống "thực sự" của tôi, "Ô tô" là rất quan trọng, nhưng "Ferrari" là điều quan trọng nhất trong miền của tôi, mà tôi không thể theo dõi, tôi phải thống kê về nó. –