20260727225141
This commit is contained in:
1 parent
9dbaef7787
commit
63588bd217
97 files changed
+1309
-145
No files matched your search
@@ -60,7 +60,6 @@ GO
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_canuse DEFAULT (1),
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_xh DEFAULT (0),
|
||||
CONSTRAINT PK_s_module PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_code UNIQUE (b_code),
|
||||
CONSTRAINT CK_s_module_code CHECK (
|
||||
LEN(b_code) BETWEEN 2 AND 50
|
||||
@@ -88,7 +87,6 @@ GO
|
||||
b_options nvarchar(max) NULL,
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_field UNIQUE (b_module_id, b_field),
|
||||
CONSTRAINT CK_s_module_field_type CHECK (b_type IN ('input', 'textarea', 'number', 'money', 'date', 'datetime', 'switch', 'select')),
|
||||
CONSTRAINT CK_s_module_field_canuse CHECK (b_canuse IN (0, 1)),
|
||||
@@ -105,8 +103,6 @@ GO
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_group_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_group_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field_group PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_group_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_group_parent FOREIGN KEY (b_parent_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT CK_s_module_field_group_canuse CHECK (b_canuse IN (0, 1))
|
||||
);
|
||||
CREATE INDEX IX_s_module_field_group_module ON dbo.s_module_field_group (b_module_id, b_canuse, b_xh, b_id);
|
||||
@@ -121,9 +117,6 @@ GO
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_list_xh DEFAULT (0),
|
||||
b_width int NULL,
|
||||
CONSTRAINT PK_s_module_field_list PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT FK_s_module_field_list_group FOREIGN KEY (b_group_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT CK_s_module_field_list_visible CHECK (b_visible IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_list_width CHECK (b_width IS NULL OR b_width > 0)
|
||||
);
|
||||
@@ -140,9 +133,6 @@ GO
|
||||
b_group_id bigint NULL,
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_edit_xh DEFAULT (0),
|
||||
CONSTRAINT PK_s_module_field_edit PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT FK_s_module_field_edit_group FOREIGN KEY (b_group_id) REFERENCES dbo.s_module_field_group (b_id),
|
||||
CONSTRAINT UQ_s_module_field_edit UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_s_module_field_edit_required CHECK (b_required IN (0, 1)),
|
||||
CONSTRAINT CK_s_module_field_edit_readonly CHECK (b_readonly IN (0, 1)),
|
||||
@@ -160,8 +150,6 @@ GO
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_field_query_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_field_query_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_field_query PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_field_query_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_s_module_field_query_field FOREIGN KEY (b_field_id) REFERENCES dbo.s_module_field (b_id),
|
||||
CONSTRAINT UQ_s_module_field_query UNIQUE (b_module_id, b_field_id),
|
||||
CONSTRAINT CK_s_module_field_query_operator CHECK (b_operator IN ('=', 'like', 'between', 'in')),
|
||||
CONSTRAINT CK_s_module_field_query_canuse CHECK (b_canuse IN (0, 1))
|
||||
@@ -177,7 +165,6 @@ GO
|
||||
b_xh int NOT NULL CONSTRAINT DF_s_module_power_xh DEFAULT (0),
|
||||
b_canuse int NOT NULL CONSTRAINT DF_s_module_power_canuse DEFAULT (1),
|
||||
CONSTRAINT PK_s_module_power PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_s_module_power_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT UQ_s_module_power UNIQUE (b_module_id, b_code),
|
||||
CONSTRAINT CK_s_module_power_canuse CHECK (b_canuse IN (0, 1))
|
||||
);
|
||||
@@ -189,24 +176,20 @@ GO
|
||||
b_inputuser_id bigint NOT NULL,
|
||||
b_inputdatetime datetime NOT NULL CONSTRAINT DF_b_user_module_inputdatetime DEFAULT (GETDATE()),
|
||||
CONSTRAINT PK_b_user_module PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_user_module_user FOREIGN KEY (b_user_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT FK_b_user_module_module FOREIGN KEY (b_module_id) REFERENCES dbo.s_module (b_id),
|
||||
CONSTRAINT FK_b_user_module_inputuser FOREIGN KEY (b_inputuser_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT UQ_b_user_module UNIQUE (b_user_id, b_module_id)
|
||||
);
|
||||
|
||||
CREATE TABLE dbo.b_user_power (
|
||||
b_id bigint NOT NULL,
|
||||
b_user_id bigint NOT NULL,
|
||||
b_module_id bigint NOT NULL,
|
||||
b_power_id bigint NOT NULL,
|
||||
b_inputuser_id bigint NOT NULL,
|
||||
b_inputdatetime datetime NOT NULL CONSTRAINT DF_b_user_power_inputdatetime DEFAULT (GETDATE()),
|
||||
CONSTRAINT PK_b_user_power PRIMARY KEY (b_id),
|
||||
CONSTRAINT FK_b_user_power_user FOREIGN KEY (b_user_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT FK_b_user_power_power FOREIGN KEY (b_power_id) REFERENCES dbo.s_module_power (b_id),
|
||||
CONSTRAINT FK_b_user_power_inputuser FOREIGN KEY (b_inputuser_id) REFERENCES dbo.b_user (b_id),
|
||||
CONSTRAINT UQ_b_user_power UNIQUE (b_user_id, b_power_id)
|
||||
);
|
||||
CREATE INDEX IX_b_user_power_module ON dbo.b_user_power (b_module_id, b_user_id);
|
||||
|
||||
CREATE TABLE dbo.b_i18n (
|
||||
b_id bigint NOT NULL,
|
||||
@@ -232,8 +215,8 @@ GO
|
||||
|
||||
INSERT INTO dbo.b_user_module (b_id, b_user_id, b_module_id, b_inputuser_id) VALUES
|
||||
(910000000000000201, @AdminId, @MetadataId, @AdminId);
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000300 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_id, @AdminId
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_module_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000300 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_module_id, b_id, @AdminId
|
||||
FROM dbo.s_module_power;
|
||||
|
||||
EXEC sys.sp_set_session_context @key = N'allow_g3soft', @value = NULL;
|
||||
|
||||
@@ -69,8 +69,8 @@ BEGIN TRANSACTION;
|
||||
INSERT INTO dbo.b_user_module (b_id, b_user_id, b_module_id, b_inputuser_id) VALUES
|
||||
(910000000000000202, @AdminId, @I18nTypeId, @AdminId);
|
||||
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000303 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_id, @AdminId
|
||||
INSERT INTO dbo.b_user_power (b_id, b_user_id, b_module_id, b_power_id, b_inputuser_id)
|
||||
SELECT 910000000000000303 + ROW_NUMBER() OVER (ORDER BY b_id), @AdminId, b_module_id, b_id, @AdminId
|
||||
FROM dbo.s_module_power
|
||||
WHERE b_module_id = @I18nTypeId;
|
||||
END
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
数据表之间仅保留逻辑关联:
|
||||
1. 为 b_user_power 增加模块 ID,并从权限定义回填存量数据;
|
||||
2. 删除当前数据库中的全部物理外键。
|
||||
*/
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
IF OBJECT_ID(N'dbo.b_user_power', N'U') IS NOT NULL
|
||||
AND COL_LENGTH(N'dbo.b_user_power', N'b_module_id') IS NULL
|
||||
BEGIN
|
||||
ALTER TABLE dbo.b_user_power ADD b_module_id bigint NULL;
|
||||
END;
|
||||
|
||||
IF OBJECT_ID(N'dbo.b_user_power', N'U') IS NOT NULL
|
||||
AND OBJECT_ID(N'dbo.s_module_power', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
UPDATE user_power
|
||||
SET b_module_id = module_power.b_module_id
|
||||
FROM dbo.b_user_power AS user_power
|
||||
INNER JOIN dbo.s_module_power AS module_power
|
||||
ON module_power.b_id = user_power.b_power_id
|
||||
WHERE user_power.b_module_id IS NULL;
|
||||
|
||||
IF EXISTS (SELECT 1 FROM dbo.b_user_power WHERE b_module_id IS NULL)
|
||||
THROW 51010, N'b_user_power 存在无法匹配模块的权限记录,迁移已取消。', 1;
|
||||
|
||||
ALTER TABLE dbo.b_user_power ALTER COLUMN b_module_id bigint NOT NULL;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.indexes
|
||||
WHERE object_id = OBJECT_ID(N'dbo.b_user_power')
|
||||
AND name = N'IX_b_user_power_module'
|
||||
)
|
||||
CREATE INDEX IX_b_user_power_module
|
||||
ON dbo.b_user_power (b_module_id, b_user_id);
|
||||
END;
|
||||
|
||||
DECLARE @Sql nvarchar(max) = N'';
|
||||
SELECT @Sql = @Sql
|
||||
+ N'ALTER TABLE '
|
||||
+ QUOTENAME(OBJECT_SCHEMA_NAME(parent_object_id)) + N'.'
|
||||
+ QUOTENAME(OBJECT_NAME(parent_object_id))
|
||||
+ N' DROP CONSTRAINT ' + QUOTENAME(name) + N';'
|
||||
FROM sys.foreign_keys;
|
||||
|
||||
IF @Sql <> N''
|
||||
EXEC sys.sp_executesql @Sql;
|
||||
|
||||
COMMIT TRANSACTION;
|
||||
Reference in new issue
Block a user