我是sql的新手,需要一些帮助。
我有一张名为“治疗”的表格,它有两个字段:
其中一些治疗方法不应与其他治疗方法一起使用。例如..。如果T_ID = 'T001‘与T_ID = 'T002’连用,就会引起严重的头痛。我想为他们中的几个做这些。
因此,我需要PL/SQL从用户那里获取一个值,哪个T_ID和程序将输出冲突处理。
提前感谢
这是我的桌子:
DROP TABLE TREATMENT CASCADE CONSTRAINTS;
CREATE TABLE TREATMENT(
T_ID VARCHAR2(5) PRIMARY KEY NOT NULL,
T_NAME VARCHAR2(15));
INSERT INTO TREATMENT VALUES
('T001','ACCUPUNCTURE');
INSERT INTO TREATMENT VALUES
('T002','MASSAGE');
INSERT INTO TREATMENT VALUES
('T003','SKIN CARE');
INSERT INTO TREATMENT VALUES
('T004','OSTEOPATHY');
INSERT INTO TREATMENT VALUES
('T005','HOMOEOPATHY');
INSERT INTO TREATMENT VALUES
('T006','PHYSIOTHERAPY');
INSERT INTO TREATMENT VALUES
('T007','PSYCHOLOGY');
INSERT INTO TREATMENT VALUES
('T008','DEMATOLOGY');
INSERT INTO TREATMENT VALUES
('T009','YOGA');
commit;例如,我想要限制“瑜伽”和“皮肤科”的结合,因为它们会产生副作用。用户输入T009和系统回复..。瑜伽不应该和皮肤科一起服用。会引起头痛
发布于 2015-03-23 08:30:44
这是一个数据建模问题。你需要另一张桌子来保存被禁止的组合。例如:
create table contraindication
( treatment1 VARCHAR2(5)
, treatment2 VARCHAR2(5)
, primary key ci_pk (treatment1, treatment2) );
insert into contraindication values ('T008', 'T009');你的程序应该查一下这张桌子。
您可能会发现插入这两种排列很有帮助,因为这将使查询更简单(如果列表变大,则会更高效):
insert into contraindication values ('T009', 'T008');https://stackoverflow.com/questions/29196451
复制相似问题