IDB Überarbeitung
This commit is contained in:
@@ -0,0 +1,288 @@
|
||||
CREATE TABLE TBIDB_LANGUAGE
|
||||
(
|
||||
GUID TINYINT NOT NULL IDENTITY (1, 1),
|
||||
LANG_CODE VARCHAR(10) NOT NULL,
|
||||
CREATE_DEFAULT_ENTRY BIT NOT NULL DEFAULT 0,
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(30),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_LANGUAGE PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_LANGUAGE UNIQUE (LANG_CODE)
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_LANGUAGE_AFT_UPD ON TBIDB_LANGUAGE
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_LANGUAGE SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_LANGUAGE.GUID = INSERTED.GUID
|
||||
GO
|
||||
--Sprachen anlegen
|
||||
INSERT INTO TBIDB_LANGUAGE (LANG_CODE,CREATE_DEFAULT_ENTRY) VALUES ('de-DE',1);
|
||||
INSERT INTO TBIDB_LANGUAGE (LANG_CODE,CREATE_DEFAULT_ENTRY) VALUES ('en-EN',1);
|
||||
GO
|
||||
|
||||
|
||||
CREATE TABLE TBIDB_ATTRIBUTE
|
||||
(
|
||||
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
||||
TITLE VARCHAR(100) NOT NULL,
|
||||
TYP_ID TINYINT NOT NULL,
|
||||
MULTI_CONTEXT BIT NOT NULL DEFAULT 0,
|
||||
VIEW_SEQUENCE INTEGER NOT NULL DEFAULT 0,
|
||||
VIEW_VISIBLE BIT NOT NULL DEFAULT 1,
|
||||
SYS_ATTRIBUTE BIT NOT NULL DEFAULT 0,
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(100),
|
||||
CHANGED_WHEN DATETIME,
|
||||
DELETED BIT NOT NULL DEFAULT 0,
|
||||
DELETED_WHO VARCHAR(100),
|
||||
DELETED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_ATTRIBUTE PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_ATTRIBUTE UNIQUE (TITLE),
|
||||
CONSTRAINT FK_TYP_ID FOREIGN KEY (TYP_ID) REFERENCES TBIDB_ATTRIBUTE_TYPE (GUID)
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_ATTRIBUTE_AFT_UPD ON TBIDB_ATTRIBUTE
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_ATTRIBUTE SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_ATTRIBUTE.GUID = INSERTED.GUID
|
||||
GO
|
||||
---Übersetzung der Attributbezeichnung
|
||||
CREATE TABLE TBIDB_ATTRIBUTE_LANGUAGE
|
||||
(
|
||||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||||
ATTRIBUTE_ID INT NOT NULL,
|
||||
LANGUAGE_ID TINYINT NOT NULL,
|
||||
TERM_ID BIGINT NOT NULL,
|
||||
COMMENT VARCHAR(500),
|
||||
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(100),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_ATT_LANGUAGE PRIMARY KEY(GUID),
|
||||
CONSTRAINT UN_TBIDB_ATT_LANGUAGE UNIQUE(ATTRIBUTE_ID,LANGUAGE_ID),
|
||||
CONSTRAINT FK_ATTRIBUTE_ID FOREIGN KEY(ATTRIBUTE_ID) REFERENCES TBIDB_ATTRIBUTE(GUID),
|
||||
CONSTRAINT FK_LANGUAGE_ID FOREIGN KEY(LANGUAGE_ID) REFERENCES TBIDB_LANGUAGE(GUID),
|
||||
CONSTRAINT FK_TERM_ID FOREIGN KEY(TERM_ID) REFERENCES TBIDB_TERM_VALUE_NVARCHAR(GUID)
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_ATT_LANGUAGE_AFT_UPD ON TBIDB_ATTRIBUTE_LANGUAGE
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_ATTRIBUTE_LANGUAGE SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_ATTRIBUTE_LANGUAGE.GUID = INSERTED.GUID
|
||||
GO
|
||||
|
||||
CREATE OR ALTER TRIGGER [dbo].[TBIDB_ATTRIBUTE_AFT_INS] ON [dbo].[TBIDB_ATTRIBUTE]
|
||||
FOR INSERT
|
||||
AS
|
||||
DECLARE
|
||||
@ATTRIBUTE_ID INTEGER,
|
||||
@TYP_ID INTEGER,
|
||||
@ADDED_WHO VARCHAR(50),
|
||||
@TITLE VARCHAR(100),
|
||||
@ADD_DEFAULT BIT,
|
||||
@LANG_ID INTEGER,
|
||||
@LANG_CODE VARCHAR(5)
|
||||
SELECT
|
||||
@ATTRIBUTE_ID = GUID,
|
||||
@TYP_ID = TYP_ID,
|
||||
@ADDED_WHO = ADDED_WHO,
|
||||
@TITLE = TITLE
|
||||
FROM INSERTED
|
||||
|
||||
SELCT
|
||||
DECLARE @NEW_TERM_ID BIGINT
|
||||
EXEC PRIDB_NEW_TERM 'NVARCHAR',@TITLE,'',@TERM_ID = @NEW_TERM_ID OUTPUT;
|
||||
|
||||
DECLARE cursorIDBLANGUAGE_ATTR CURSOR FOR
|
||||
select GUID,LANG_CODE from TBIDB_LANGUAGE where CREATE_DEFAULT_ENTRY = 1
|
||||
OPEN cursorIDBLANGUAGE_ATTR
|
||||
FETCH NEXT FROM cursorIDBLANGUAGE_ATTR INTO @LANG_ID,@LANG_CODE
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
INSERT INTO [dbo].[TBIDB_ATTRIBUTE_LANGUAGE]
|
||||
([ATTRIBUTE_ID]
|
||||
,[LANGUAGE_ID]
|
||||
,[TERM_ID]
|
||||
,[ADDED_WHO])
|
||||
VALUES
|
||||
(@ATTRIBUTE_ID
|
||||
,@LANG_ID
|
||||
,@NEW_TERM_ID
|
||||
,@ADDED_WHO);
|
||||
--AUSKOMMENTIERT weil noch zur Diskussion - wir legen ja nur noch über Procedures an
|
||||
--EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,'DEFAULT'
|
||||
--EXEC PRIDB_CREATE_VIEW_DOC_DATA @LANG_CODE,''
|
||||
FETCH NEXT FROM cursorIDBLANGUAGE_ATTR INTO @LANG_ID,@LANG_CODE
|
||||
END
|
||||
CLOSE cursorIDBLANGUAGE_ATTR
|
||||
DEALLOCATE cursorIDBLANGUAGE_ATTR
|
||||
--#################################
|
||||
--Business Entity - Geschäftseinheit oder Bereich
|
||||
--#################################
|
||||
CREATE TABLE TBIDB_BUSINESS_ENTITY
|
||||
(
|
||||
GUID INTEGER NOT NULL IDENTITY (1, 1),
|
||||
TITLE VARCHAR(500) NOT NULL,
|
||||
PARENT_ENT_ID INTEGER NOT NULL DEFAULT 0,
|
||||
INHERITS_ATTRIBUTES BIT NOT NULL DEFAULT 1,
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(30),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_BUSINESS_ENTITY PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_BUSINESS_ENTITY UNIQUE (TITLE)
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_BUSINESS_ENTITY_AFT_UPD ON TBIDB_BUSINESS_ENTITY
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_BUSINESS_ENTITY SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_BUSINESS_ENTITY.GUID = INSERTED.GUID
|
||||
GO
|
||||
INSERT INTO TBIDB_BUSINESS_ENTITY (TITLE) VALUES ('DEFAULT');
|
||||
|
||||
--Attribut zu Geschäftsbereich
|
||||
CREATE TABLE TBIDB_BE_ATTRIBUTE
|
||||
(
|
||||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||||
BE_ID INTEGER NOT NULL,
|
||||
ATTR_ID INTEGER NOT NULL,
|
||||
--DEFAULT_SEARCH_ATTRIBUTE BIT NOT NULL DEFAULT 0, DAS KANN WEG :)
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(100),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_BE_ATTRIBUTE PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_BE_ATTRIBUTE UNIQUE (BE_ID,ATTR_ID),
|
||||
CONSTRAINT FK_IDB_BEATT_BEID FOREIGN KEY (BE_ID) REFERENCES TBIDB_BUSINESS_ENTITY (GUID),
|
||||
CONSTRAINT FK_IDB_BEATT_AID FOREIGN KEY (ATTR_ID) REFERENCES TBIDB_ATTRIBUTE (GUID),
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_BE_ATTRIBUTE_AFT_UPD ON TBIDB_BE_ATTRIBUTE
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_BE_ATTRIBUTE SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_BE_ATTRIBUTE.GUID = INSERTED.GUID
|
||||
GO
|
||||
|
||||
|
||||
--#########################################################################
|
||||
--Hier schon mal die IDB_TYPEN_DEFINITION weil es auch in den Komplex passt
|
||||
CREATE TABLE TBIDB_OBJECT_KIND
|
||||
(
|
||||
GUID TINYINT NOT NULL IDENTITY (1, 1),
|
||||
KIND_NAME VARCHAR(100) NOT NULL,
|
||||
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(30),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_OBJECT_KIND PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_OBJECT_KIND UNIQUE (KIND_NAME)
|
||||
)
|
||||
GO
|
||||
INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('DOC');
|
||||
INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('OBJECT');
|
||||
INSERT INTO TBIDB_OBJECT_KIND (KIND_NAME) VALUES ('DYNAMIC_FOLDER');
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_OBJECT_KIND_AFT_UPD ON TBIDB_OBJECT_KIND
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_OBJECT_KIND SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_OBJECT_KIND.GUID = INSERTED.GUID
|
||||
GO
|
||||
--#############################################
|
||||
--Die Objekt-Tabelle welche das IDB_OBJ erzeugt
|
||||
--#############################################
|
||||
CREATE TABLE TBIDB_OBJECT
|
||||
(
|
||||
IDB_OBJ_ID BIGINT NOT NULL IDENTITY (1000000, 1),
|
||||
KIND_TYPE_ID TINYINT NOT NULL,
|
||||
REFERENCE_KEY BIGINT,
|
||||
PARENT_OBJ_ID BIGINT NOT NULL DEFAULT 0,
|
||||
IS_VERSION BIT NOT NULL DEFAULT 0,
|
||||
ACTIVE BIT NOT NULL DEFAULT 1,
|
||||
DELETED BIT NOT NULL DEFAULT 0,
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(30),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CHANGED_WHEN_SUBSTRUCTURE DATETIME,
|
||||
CHANGED_WHO_SUBSTRUCTURE VARCHAR(100),
|
||||
CONSTRAINT PK_TBIDB_OBJECT PRIMARY KEY (IDB_OBJ_ID),
|
||||
CONSTRAINT FK_KIND_TYPE_ID FOREIGN KEY (KIND_TYPE_ID) REFERENCES TBIDB_OBJECT_KIND (GUID)
|
||||
)
|
||||
GO
|
||||
|
||||
CREATE TRIGGER TBIDB_OBJECT_AFT_INS ON TBIDB_OBJECT
|
||||
WITH EXECUTE AS CALLER
|
||||
FOR INSERT
|
||||
AS
|
||||
BEGIN TRY
|
||||
DECLARE
|
||||
@IDB_OBJ_ID BIGINT,
|
||||
@REFERENCE_KEY BIGINT
|
||||
SELECT
|
||||
@IDB_OBJ_ID = IDB_OBJ_ID,
|
||||
@REFERENCE_KEY = REFERENCE_KEY
|
||||
FROM INSERTED
|
||||
|
||||
IF @REFERENCE_KEY IS NULL
|
||||
UPDATE TBIDB_OBJECT SET REFERENCE_KEY = @IDB_OBJ_ID
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_OBJECT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
PRINT 'ERROR IN TRIGGER: ' + CONVERT(VARCHAR(30),ERROR_PROCEDURE())
|
||||
+ ' - ERROR-MESSAGE: '
|
||||
+ CONVERT(VARCHAR(500),ERROR_MESSAGE())
|
||||
END CATCH
|
||||
GO
|
||||
|
||||
CREATE TRIGGER [dbo].[TBIDB_OBJECT_AFT_UPD] ON [dbo].[TBIDB_OBJECT]
|
||||
FOR UPDATE
|
||||
AS
|
||||
IF UPDATE(REFERENCE_KEY) OR UPDATE(PARENT_OBJ_ID) OR UPDATE(IS_VERSION) OR UPDATE(ACTIVE) OR UPDATE(DELETED) OR UPDATE(COMMENT)
|
||||
UPDATE TBIDB_OBJECT SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_OBJECT.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
|
||||
GO
|
||||
--IDBOBJ zu Geschäftseinheit
|
||||
CREATE TABLE TBIDB_OBJECT_BE
|
||||
(
|
||||
GUID BIGINT NOT NULL IDENTITY (1, 1),
|
||||
IDB_OBJ_ID BIGINT NOT NULL,
|
||||
BE_ID INTEGER NOT NULL,
|
||||
COMMENT VARCHAR(1000),
|
||||
ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM',
|
||||
ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()),
|
||||
CHANGED_WHO VARCHAR(100),
|
||||
CHANGED_WHEN DATETIME,
|
||||
CONSTRAINT PK_TBIDB_OBJECT_BE PRIMARY KEY (GUID),
|
||||
CONSTRAINT UQ_TBIDB_OBJECT_BE UNIQUE (IDB_OBJ_ID,BE_ID),
|
||||
CONSTRAINT FK_IDB_OBJ_ID FOREIGN KEY (IDB_OBJ_ID) REFERENCES TBIDB_OBJECT (IDB_OBJ_ID),
|
||||
CONSTRAINT FK_BE_ID FOREIGN KEY (BE_ID) REFERENCES TBIDB_BUSINESS_ENTITY (GUID),
|
||||
)
|
||||
GO
|
||||
CREATE TRIGGER TBIDB_OBJECT_BE_AFT_UPD ON TBIDB_OBJECT_BE
|
||||
FOR UPDATE
|
||||
AS
|
||||
UPDATE TBIDB_OBJECT_BE SET CHANGED_WHEN = GETDATE()
|
||||
FROM INSERTED
|
||||
WHERE TBIDB_OBJECT_BE.IDB_OBJ_ID = INSERTED.IDB_OBJ_ID
|
||||
GO
|
||||
Reference in New Issue
Block a user