Tôi có một cột: standard BOOLEAN NOT NULL
Tôi muốn thực thi một hàng Đúng và tất cả các hàng khác Sai. Không có FK hoặc bất cứ điều gì khác tùy thuộc vào ràng buộc này. Tôi biết tôi có thể hoàn thành nó với plpgsql, nhưng điều này có vẻ giống như một búa tạ. Tôi muốn một cái gì đó như một CHECK
hoặc UNIQUE
ràng buộc. Càng đơn giản càng tốt.
Một hàng phải là True, tất cả chúng không thể là Sai (vì vậy hàng đầu tiên được chèn sẽ phải là True).
Hàng sẽ cần được cập nhật, điều đó có nghĩa là tôi phải chờ kiểm tra các ràng buộc cho đến khi cập nhật xong, vì tất cả các hàng có thể được đặt Sai trước và một hàng Đúng sau đó.
Có một FK giữa products.tax_rate_id
và tax_rate.id
, nhưng nó không liên quan gì đến thuế suất mặc định hoặc thuế tiêu chuẩn, người dùng có thể lựa chọn để dễ dàng tạo ra các sản phẩm mới ..
PostgreQuery 9.5 nếu có vấn đề.
Lý lịch
Bảng là thuế suất. Một trong những mức thuế là mặc định ( standard
vì mặc định là lệnh Postgres). Khi một sản phẩm mới được thêm vào, thuế suất tiêu chuẩn được áp dụng cho sản phẩm. Nếu không có standard
, cơ sở dữ liệu phải đoán hoặc tất cả các loại kiểm tra không cần thiết. Giải pháp đơn giản, tôi nghĩ, là đảm bảo có một standard
.
Theo "mặc định" ở trên, tôi có nghĩa là cho lớp trình bày (UI). Có một tùy chọn người dùng để thay đổi mức thuế mặc định. Tôi cần thêm các kiểm tra bổ sung để đảm bảo GUI / người dùng không cố gắng đặt tax_rate_id thành NULL, hoặc sau đó chỉ đặt mức thuế suất mặc định.