CREATE OR REPLACE TYPE Student_type AS OBJECT(
      SSN varchar(30),
      name varchar(30),
      DOB DATE,
      Gender CHAR(1),
      age integer,
      address Address_type, 
)NOT FINAL;
/
CREATE OR REPLACE TYPE Master_type UNDER Student_type(  
)NOT FINAL;
/CREATE OR REPLACE TYPE PHD_type UNDER Student_type(
      Advisor varchar(30),
      Program varchar(10)
);
/CREATE TABLE students of Student_type(
      Primary key(SSN)
);CREATE TABLE MasterAssigned(
      stuId varchar(30),
      taskId varchar(20),
      schedule TimeSchedule,
      Primary key(stuID,taskId,schedule),
      Foreign key(stuId) references Students(SSN) 
                             Students IS OF (ONLY Master_type),
      Foreign key(taskId) references Tasks(TaskID) TREAT Tasks.Object_Value AS PictureTask
);MasterAssigned 里stuId 如果只指master type的话, 这个foreign key 语句该怎么写呢?
谢谢大家了 

解决方案 »

  1.   

    CREATE TABLE MasterAssigned( 
          stuId varchar(30), 
          taskId varchar(20), 
          schedule TimeSchedule, 
          Primary key(stuID,taskId,schedule), 
          constraint fk_name foreign key (stuId) references Students (SSN),
    ......
      

  2.   

    CREATE TABLE MasterAssigned( 
          stuId varchar(30), 
          taskId varchar(20), 
          schedule TimeSchedule, 
          Primary key(stuID,taskId,schedule), 
          foreign key (stuId) references Students (SSN), 
    ......
      

  3.   

    谢谢你, 可是如果这个stuId,只要对应 Master 这个sub type的话, 这个foreign key 该怎么写呢