20260728225443

This commit is contained in:
oneao committed 2026-07-28 22:54:43 +08:00
1 parent 5ec7aadef9
commit f6b79ea09a
30 files changed
+1541 -1120

No files matched your search

@@ -60,18 +60,7 @@ 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 UQ_s_module_code UNIQUE (b_code),
CONSTRAINT CK_s_module_code CHECK (
LEN(b_code) BETWEEN 2 AND 50
AND b_code COLLATE Latin1_General_100_BIN2 LIKE '[a-z]%'
AND b_code COLLATE Latin1_General_100_BIN2 NOT LIKE '%[^a-z0-9_]%'
),
CONSTRAINT CK_s_module_type CHECK (b_module_type IN ('directory', 'page', 'data')),
CONSTRAINT CK_s_module_canmenu CHECK (b_canmenu IN (0, 1)),
CONSTRAINT CK_s_module_canuse CHECK (b_canuse IN (0, 1)),
CONSTRAINT CK_s_module_directory CHECK (b_module_type <> 'directory' OR (b_route IS NULL AND b_viewtable IS NULL AND b_savetable IS NULL)),
CONSTRAINT CK_s_module_page CHECK (b_module_type <> 'page' OR b_route IS NOT NULL),
CONSTRAINT CK_s_module_data CHECK (b_module_type <> 'data' OR (b_canmenu = 0 AND b_route IS NULL))
CONSTRAINT UQ_s_module_code UNIQUE (b_code)
);
CREATE UNIQUE INDEX UX_s_module_route ON dbo.s_module (b_route) WHERE b_route IS NOT NULL;
CREATE INDEX IX_s_module_parent ON dbo.s_module (b_parent_id, b_xh, b_id);
@@ -87,10 +76,7 @@ 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 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)),
CONSTRAINT CK_s_module_field_options CHECK (b_options IS NULL OR ISJSON(b_options) = 1)
CONSTRAINT UQ_s_module_field UNIQUE (b_module_id, b_field)
);
CREATE INDEX IX_s_module_field_module ON dbo.s_module_field (b_module_id, b_canuse, b_id);
@@ -102,8 +88,7 @@ GO
b_i18n varchar(150) NULL,
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 CK_s_module_field_group_canuse CHECK (b_canuse IN (0, 1))
CONSTRAINT PK_s_module_field_group PRIMARY KEY (b_id)
);
CREATE INDEX IX_s_module_field_group_module ON dbo.s_module_field_group (b_module_id, b_canuse, b_xh, b_id);
@@ -116,9 +101,7 @@ GO
b_visible int NOT NULL CONSTRAINT DF_s_module_field_list_visible DEFAULT (1),
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 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)
CONSTRAINT PK_s_module_field_list PRIMARY KEY (b_id)
);
CREATE UNIQUE INDEX UX_s_module_field_list_field ON dbo.s_module_field_list (b_module_id, b_field_id) WHERE b_field_id IS NOT NULL;
CREATE INDEX IX_s_module_field_list_tree ON dbo.s_module_field_list (b_module_id, b_group_id, b_xh, b_id);
@@ -133,10 +116,7 @@ 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 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)),
CONSTRAINT CK_s_module_field_edit_disabled CHECK (b_disabled IN (0, 1))
CONSTRAINT UQ_s_module_field_edit UNIQUE (b_module_id, b_field_id)
);
CREATE INDEX IX_s_module_field_edit_module ON dbo.s_module_field_edit (b_module_id, b_xh, b_id);
@@ -150,9 +130,7 @@ 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 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))
CONSTRAINT UQ_s_module_field_query UNIQUE (b_module_id, b_field_id)
);
CREATE INDEX IX_s_module_field_query_module ON dbo.s_module_field_query (b_module_id, b_canuse, b_xh, b_id);
@@ -165,8 +143,7 @@ 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 UQ_s_module_power UNIQUE (b_module_id, b_code),
CONSTRAINT CK_s_module_power_canuse CHECK (b_canuse IN (0, 1))
CONSTRAINT UQ_s_module_power UNIQUE (b_module_id, b_code)
);
CREATE TABLE dbo.b_user_module (
@@ -34,9 +34,7 @@ BEGIN TRANSACTION;
b_default int NOT NULL CONSTRAINT DF_b_i18n_type_default DEFAULT (0),
b_xh int NOT NULL CONSTRAINT DF_b_i18n_type_xh DEFAULT (0),
CONSTRAINT PK_b_i18n_type PRIMARY KEY (b_id),
CONSTRAINT UQ_b_i18n_type_code UNIQUE (b_code),
CONSTRAINT CK_b_i18n_type_canuse CHECK (b_canuse IN (0, 1)),
CONSTRAINT CK_b_i18n_type_default CHECK (b_default IN (0, 1))
CONSTRAINT UQ_b_i18n_type_code UNIQUE (b_code)
);
CREATE INDEX IX_b_i18n_type_xh ON dbo.b_i18n_type (b_xh, b_id);
@@ -0,0 +1,20 @@
/* 删除数据库中的 CHECK 约束。 */
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.check_constraints;
IF @Sql <> N''
EXEC sys.sp_executesql @Sql;
/* 将旧的 switch 字段类型统一改为 checkbox。 */
IF OBJECT_ID(N'dbo.s_module_field', N'U') IS NOT NULL
BEGIN
UPDATE dbo.s_module_field
SET b_type = 'checkbox'
WHERE b_type = 'switch';
END;