Câu hỏi không giải thích:
Có cách nào để có một ràng buộc gồm 2 giá trị null luôn yêu cầu 1 phải có giá trị không? Ví dụ: hai cột ngày đều null nhưng có ít nhất 1 yêu cầu phải có giá trị
Mô tả vấn đề:
Hãy nói rằng tôi có bảng gọi là Chi phí
và có 2 ngày:
advision_Exense_Exption_date DATE NULLABLE chi phí_payment_date DATE NULLABLE
logic của 2 cột đó là như sau:
Tôi đã mua một cái gì đó và tôi biết tôi phải trả tiền cho nó, một ngày nào đó, như hóa đơn điện thoại. Tôi sẽ nhập khoản này dưới dạng chi phí với cost_payment_date. Ngày này là ngày được cho là tôi nên thanh toán nhưng không phải là ngày thanh toán thực tế, như ngày hết hạn của hóa đơn.
Trong trường hợp khác, tôi bán thẻ quà tặng của một số nhà cung cấp cho dịch vụ đó. Tôi có thể có chi phí mua cho nhà cung cấp của mình, dịch vụ được chuyển cho khách hàng của tôi chỉ khi khách hàng đổi thẻ. Do đó, thẻ quà tặng có ngày hết hạn, tôi muốn thực hiện một ưu tiên cho 'chi phí' đó mà không cần thêm chi phí cho thời gian thẻ quà tặng có hiệu lực, nếu thẻ quà tặng hết hạn, 'chi phí' đó không nên nhập vào tài khoản hệ thống.
Tôi biết rằng tôi có thể có 2 bảng bằng nhau được gọi là tiền tố và khai báo xác nhận nhưng không đúng, vì vậy tôi có trong cùng một bảng, 2 ngày, không thể thực hiện được, nhưng tôi muốn ràng buộc hoặc một cái gì đó để luôn luôn yêu cầu.
Có một chiến lược khả thi khác:
Payment_date NGÀY KHÔNG NULL is_prevision_date BOOL KHÔNG NULL
Vì vậy, trong trường hợp này, nếu ngày là giá trị bool thịnh hành sẽ là 1, nếu không sẽ là 0. Không có giá trị null, tất cả đều tốt. ngoại trừ việc tôi muốn tùy chọn lưu trữ giá trị CẢ khi lần đầu tiên tôi có ngày ưu tiên và THEN (giả sử hai ngày sau) có ngày xác nhận cho chi phí đó, trong trường hợp với chiến lược 2 tôi sẽ không có tùy chọn đó.
Tôi đang làm mọi thứ sai trong thiết kế cơ sở dữ liệu? : D
CHECK
ràng buộc. Không cần cột kiên trì.