Object_Type_Relation_Type
View presenting allowed relation types between object type pairs with usage counts.
Definition
CREATE VIEW
[mr].[Object_Type_Relation_Type] AS
SELECT
[r].[Relation_Type_Id],
[r].[From_Object_Type_Id],
[r].[To_Object_Type_Id],
[cfo].[Enum_Key] [From_Object_Type],
[cto].[Enum_Key] [To_Object_Type],
[cr].[Enum_Key] [Relation_Type],
CASE
WHEN [mr].[Count] IS NULL THEN 0
ELSE [mr].[Count]
END AS [Count]
FROM
[R_Object_Relation_Type] [r]
JOIN [C_Relation_Type] [cr] ON [cr].[Relation_Type_Id] = [r].[Relation_Type_Id]
AND [cr].[Object_State_Id] = 10
JOIN [C_Object_Type] [cfo] ON [cfo].[Object_Type_Id] = [r].[From_Object_Type_Id]
AND [cfo].[State_Id] = 10
JOIN [C_Object_Type] [cto] ON [cto].[Object_Type_Id] = [r].[To_Object_Type_Id]
AND [cto].[State_Id] = 10
LEFT JOIN (
SELECT
[mr].[Relation_Type_Id] [Relation_Type_Id],
[mfo].[Object_Type_Id] [From_Object_Type_Id],
[mto].[Object_Type_Id] [To_Object_Type_Id],
COUNT(*) [Count]
FROM
[MR_Object_Relation] [mr]
JOIN [MR_Object] [mfo] ON [mfo].[Object_Id] = [mr].[From_Object_Id]
AND [mfo].[Is_Deleted] = 0
JOIN [MR_Object] [mto] ON [mto].[Object_Id] = [mr].[To_Object_Id]
AND [mto].[Is_Deleted] = 0
GROUP BY
[mr].[Relation_Type_Id],
[mfo].[Object_Type_Id],
[mto].[Object_Type_Id]
) AS [mr] ON [mr].[Relation_Type_Id] = [r].[Relation_Type_Id]
AND [mr].[From_Object_Type_Id] = [r].[From_Object_Type_Id]
AND [mr].[To_Object_Type_Id] = [r].[To_Object_Type_Id]
Columns
| # | Column | Data Type | Nullable | Source |
|---|
| 1 | Relation_Type_Id | int | No | |
| 2 | From_Object_Type_Id | int | No | |
| 3 | To_Object_Type_Id | int | No | |
| 4 | From_Object_Type | nvarchar | No | |
| 5 | To_Object_Type | nvarchar | No | |
| 6 | Relation_Type | nvarchar | No | |
| 7 | Count | int | Yes | |