Đọc tài liệu trên các cột ảo:
CREATE TABLE Rent_Band
(
Plot_ID NUMBER(3),
Band VARCHAR(1) AS
(CASE WHEN Owner_Category = 'Council' AND Sheds ='No' THEN 'A'
WHEN Owner_Category = 'Private' AND Water_Supply ='Yes' THEN 'D'
WHEN Owner_Category = 'Council' AND Water_Supply ='No' AND Sheds ='Yes' THEN 'B'
WHEN Owner_Category = 'Private' AND Water_Supply ='No' AND Sheds ='No' THEN 'B'
ELSE 'C' END),
Rent_Charge NUMBER(4),
Owner_Category VARCHAR(10) CONSTRAINT Checking_Owner_Category CHECK((Owner_Category='Private') OR (Owner_Category='Council')),
Sheds VARCHAR(3) CHECK((Sheds='Yes') OR (Sheds='No')),
Water_Supply VARCHAR(3) CHECK((Water_Supply='Yes') OR (Water_Supply='No'))
)
BTW, tôi sẽ giới thiệu MẠNH MẼ:
- sử dụng
bit
trường thay vìYes
/No
ràng buộc choSheds
vàWater_Supply
(tiết kiệm chỗ và các ràng buộc kiểm tra chi phí, đồng thời dịch trực tiếp sang boolean trong hầu hết các ngôn ngữ ứng dụng) - sử dụng bảng tra cứu cho
Owner_Category
thay vì một ràng buộc chuỗi vì những lý do cơ bản giống nhau