Research Article

Developing an IFC-Based Database for Construction Quality Evaluation

Table 14

Relationship between two entities.

(a) 1 : n, both entities mandatory(b) 1 : n, one entity mandatory, one entity optional
Every structural element belongs to exactly one fractional project, and each fractional project has at least one structural elementEach fractional project is evaluated in one or more related file. A given quality-related file may not necessarily belong to a fractional project
 Create table fractionalproject Create table fractionalproject
  (F_BranchWorkID char(2),  (F_BranchWorkID char(2),
  F_BranchWorkName varchar(12),  F_BranchWorkName varchar(12),
  F_ConstructionU varchar(40),  F_ConstructionU varchar(40),
  F_ConstructureQS decimal(4,2),  F_ConstructureQS decimal(4,2),
  Primary key (F_BranchWorkID));  Primary key (F_BranchWorkID));
 Create table IFCelement Create table relatedfiles
  (F_ComponentID Varchar(100),  (F_DocumentID char(7),
  F_ComponentName varchar(20),  F_DocumentName varchar(40),
  F_ComponentDetail varchar(20),  F_CreateTime date(),
  F_BranchWorkID char(2) not null,  F_BranchWorkID char(2),
  F_IndicatorID Char(6),  F_StoragePath varchar(40),
  F_IndicatorName varchar(20),  Primary key (F_DocumentID),
  F_EvaluationSR varchar(200),  Foreign key (F_BranchWorkID) references fractionalproject
  F_EvaluationResult varchar(5),
  Primary key (F_ComponentID, F_IndicatorID);  On delete set default on update cascade);
  Foreign key ((F_BranchWorkID) references fractionalproject
  On delete set default on update cascade),

(c) m : n, one entity mandatory, one entity optional(d) m : n, both entities mandatory
Each evaluation property attached in IFC elements is applied in one or more quality-related files. A given quality-related file may not necessarily include a structural element with quality attributesEach structural element is evaluated in one or more inspection lot. And one inspection lot consists of one or more structural elements
 Create table IFCelement Create table Inpectionlot
  (F_ComponentID Varchar(100),  (F_InspectionLotID char(14),
  F_ComponentName varchar(20),  F_InspectionLotName varchar(20),
  F_ComponentDetail varchar(20),  F_ConstituentPID char(2),
  F_BranchWorkID char(2),  F_InspectionLotDate date(),
  F_IndicatorID Char(6),  F_InspectionLotAD date(),
  F_IndicatorName varchar(20),  F_InspectionLotS varchar(50),
  F_EvaluationSR varchar(200),  F_InspectionLotIR varchar(100),
  F_EvaluationResult varchar(5),  F_InspectionLot SU varchar(100),
  Primary key (F_ComponentID, F_IndicatorID);  Primary key (F_InspectionLotID);
 Create table relatedfiles Create table IFCelement
  (F_DocumentID char(7),  (F_ComponentID Varchar(100),
  F_DocumentName varchar(40),  F_ComponentName varchar(20),
  F_CreateTime date(),  F_ComponentDetail varchar(20),
  F_BranchWorkID char(2),  F_BranchWorkID char(2),
  F_StoragePath varchar(40),  F_IndicatorID Char(6),
  Primary key (F_DocumentID),  F_IndicatorName varchar(20),
 Create table associate4  F_EvaluationSR varchar(200),
  (F_DocumentID char(7),  F_EvaluationResult varchar(5),
  F_ComponentID Varchar(100),  Primary key (F_ComponentID, F_IndicatorID);
  F_IndicatorID Char(6), Create table evaluate
  Primary key (F_DocumentID, F_ComponentID, F_IndicatorID);  (F_ComponentID Varchar(100) not null,
  F_IndicatorID Char(6),
  Foreign key (F_DocumentID) references relatedfiles on delete set default on update cascade),  F_InspectionLotID char(14),
  Foreign key (F_ComponentID, F_IndicatorID) references IFCelement(F_ComponentID, F_IndicatorID) on delete set default on update cascade);  Primary key (F_InspectionLotID, F_ComponentID, F_IndicatorID),
  Foreign key (F_InspectionLotID) references Inspectionlot on delete set default on update cascade),
  Foreign key (F_ComponentID, F_IndicatorID) references IFCelement (F_ComponentID, F_IndicatorID) on delete set default on update cascade);