Motivation:
Current database schema does not properly represent a relationship between CDT and BDT. There is also an ambiguity in BDT definition in Score. Although SDO defined own CDTs based on CCTS-defined CDTs, it used as a BDT at the BIE level.
It follows the rule that every SDO-defined CDT(previously BDT, shortly SDO CDT) should derive properties including supplementary components (SCs) from the base DT. In real components, however, some SDO CDTs don’t have base SCs (e.g.,
Code
CDT in CCTS has three supplementary components;List Identifier
,List Agency Identifier
, andList Version Identifier
. But ‘CodeType_1E7368’ in OAGIS doesn’t have them.) In order to tackle this problem, Score copied base SCs to SDO CDT and it makes maximum cardinalities to zero (0) to represent its unavailability. This makes a lot of duplicated records in DB.Some SDO CDTs have custom SCs (e.g.,
NameType
hasSequenceNumber
SC that CCTS doesn’t define.) Since Score assumed every non-CCTS CDT should derive SCs from CCTS CDT as a base, CDT should have those custom SCs, which makes CCTS noncompliance at the design level even though it never expose to users.
As-Is:
Proposal:
DT records split up into
cdt
andbdt
tables for each CCTS CDTs and non-CDTs, and records incdt
will be unalterable.The CDT only has mapping data with the primitive value, and only the BDT has the mapping data with the XBT.
The BDT use the based CDT’s AWD PRI data and managed the code list / agency id list restriction data by BDT_PRI_RESTRI table.
Like as ACC-based ACC, The SCs that defined by based BDT are used current BDT.
To change the property of DT_SC, the corresponding level of BDT must be revised.
Example:
BDT
Tax_ Code. Type
use the SCs from based DT's.
Tax_ Code. Type
Tax_ Code Content. Type
Code Content. Type
Code_1E7368. Type
Code. Type
List Idenfier
List Agency Idenfier
List Version Idenfier