Tôi đang làm việc trên một ứng dụng ASP.NET MVC, thiết kế các mô hình miền, sử dụng (thử nghiệm) tính năng EF Code First mới.Whats thiết kế/thực hành tốt hơn: Thuộc tính dễ vỡ hoặc thuộc tính 1 giá trị và 1 bool "có" thuộc tính?
Tôi có một thực thể Hoạt động có thể có hoặc không có Hạn chót, cách tốt nhất để tiếp cận nó là gì?
1 bất động sản:
public DateTime? Deadline {get; set;}
and check vs null before using
hoặc
2 thuộc tính:
public DateTime Deadline {get; set;}
public bool HasDeadline {get; set;}
Lúc đầu, tôi nghĩ đến các tùy chọn đầu tiên, nhưng sau đó tôi bắt đầu nghĩ rằng có lẽ tùy chọn thứ hai sẽ là tốt hơn về DB ...
Có thực tiễn nào tốt nhất liên quan đến điều này không ?
Tôi muốn đi với các tùy chọn đầu tiên nếu 'HasDeadline' chỉ ảnh hưởng đến 'Deadline' cột. Nếu nó ảnh hưởng đến nhiều trường hoặc hành vi, thì một cột riêng biệt có thể thích hợp (có cột 'OverduePenalty' chỉ có ý nghĩa nếu có hạn chót không?). Hãy suy nghĩ xem liệu bạn có nhiều truy vấn dọc theo các dòng 'KHÔNG CÓ THƯỜNG NIÊN' ('Hạn chót') ', bởi vì 'WHERE' HasDeadline'' cảm thấy sạch hơn nhiều. –
Vì hes làm mã đầu tiên trên một mô hình miền, ai quan tâm đến SQL trông như thế nào? Làm cho miền đẹp, và có thể sử dụng, sau đó lo lắng về phía cơ sở dữ liệu của nó. –
Sự khác biệt cũng xuất hiện trong LINQ. –