35通用设置.sql 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. -- Active: xiaoding_tes@@192.168.110.85@3306@xiaoding_test
  2. /* 删除设置相关表 */
  3. DROP TABLE IF EXISTS `setting_values`;
  4. DROP TABLE IF EXISTS `setting_permissions`;
  5. DROP TABLE IF EXISTS `setting_items`;
  6. DROP TABLE IF EXISTS `setting_groups`;
  7. /* 创建设置组表 */
  8. CREATE TABLE `setting_groups` (
  9. `id` bigint unsigned NOT NULL AUTO_INCREMENT /* 主键ID */,
  10. `code` varchar(50) NOT NULL /* 设置组编码 */,
  11. `name` varchar(50) NOT NULL /* 设置组名称 */,
  12. `description` varchar(255) DEFAULT NULL /* 设置组描述 */,
  13. `sort` int NOT NULL DEFAULT 0 /* 排序 */,
  14. `created_at` timestamp NULL DEFAULT NULL /* 创建时间 */,
  15. `updated_at` timestamp NULL DEFAULT NULL /* 更新时间 */,
  16. PRIMARY KEY (`id`),
  17. UNIQUE KEY `uk_code` (`code`)
  18. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci /* 设置组表 */;
  19. /* 创建设置项表 */
  20. CREATE TABLE `setting_items` (
  21. `id` bigint unsigned NOT NULL AUTO_INCREMENT /* 主键ID */,
  22. `group_id` bigint unsigned NOT NULL /* 设置组ID */,
  23. `code` varchar(50) NOT NULL /* 设置项编码 */,
  24. `name` varchar(50) NOT NULL /* 设置项名称 */,
  25. `description` varchar(255) DEFAULT NULL /* 设置项描述 */,
  26. `value_type` varchar(20) NOT NULL /* 值类型:string,number,boolean,json */,
  27. `default_value` text DEFAULT NULL /* 默认值 */,
  28. `min_value` decimal(10, 2) DEFAULT NULL /* 最⼩值(数值类型) */,
  29. `max_value` decimal(10, 2) DEFAULT NULL /* 最⼤值(数值类型) */,
  30. `options` json DEFAULT NULL /* 可选值(json格式) */,
  31. `sort` int NOT NULL DEFAULT 0 /* 排序 */,
  32. `created_at` timestamp NULL DEFAULT NULL /* 创建时间 */,
  33. `updated_at` timestamp NULL DEFAULT NULL /* 更新时间 */,
  34. PRIMARY KEY (`id`),
  35. UNIQUE KEY `uk_code` (`code`),
  36. KEY `idx_group_id` (`group_id`),
  37. CONSTRAINT `fk_setting_items_group_id` FOREIGN KEY (`group_id`) REFERENCES `setting_groups` (`id`)
  38. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci /* 设置项表 */;
  39. /* 创建设置权限表 */
  40. CREATE TABLE `setting_permissions` (
  41. `id` bigint unsigned NOT NULL AUTO_INCREMENT /* 主键ID */,
  42. `item_id` bigint unsigned NOT NULL /* 设置项ID */,
  43. `object_type` varchar(20) NOT NULL /* 业务对象类型:PLATFORM,AGENT,SHOP,COACH */,
  44. `can_edit` tinyint(1) NOT NULL DEFAULT 0 /* 是否可编辑 */,
  45. `min_value` decimal(10, 2) DEFAULT NULL /* 最⼩值限制 */,
  46. `max_value` decimal(10, 2) DEFAULT NULL /* 最⼤值限制 */,
  47. `options` json DEFAULT NULL /* 可选值限制 */,
  48. `created_at` timestamp NULL DEFAULT NULL /* 创建时间 */,
  49. `updated_at` timestamp NULL DEFAULT NULL /* 更新时间 */,
  50. PRIMARY KEY (`id`),
  51. UNIQUE KEY `uk_item_object` (`item_id`, `object_type`),
  52. KEY `idx_item_id` (`item_id`),
  53. CONSTRAINT `fk_setting_permissions_item_id` FOREIGN KEY (`item_id`) REFERENCES `setting_items` (`id`)
  54. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci /* 设置权限表 */;
  55. /* 创建设置值表 */
  56. CREATE TABLE `setting_values` (
  57. `id` bigint unsigned NOT NULL AUTO_INCREMENT /* 主键ID */,
  58. `item_id` bigint unsigned NOT NULL /* 设置项ID */,
  59. `object_type` varchar(20) NOT NULL /* 业务对象类型:PLATFORM,AGENT,SHOP,COACH */,
  60. `object_id` bigint unsigned NOT NULL /* 业务对象ID */,
  61. `value` text NOT NULL /* 设置值 */,
  62. `created_at` timestamp NULL DEFAULT NULL /* 创建时间 */,
  63. `updated_at` timestamp NULL DEFAULT NULL /* 更新时间 */,
  64. PRIMARY KEY (`id`),
  65. UNIQUE KEY `uk_item_object` (
  66. `item_id`,
  67. `object_type`,
  68. `object_id`
  69. ),
  70. KEY `idx_object` (`object_type`, `object_id`),
  71. CONSTRAINT `fk_setting_values_item_id` FOREIGN KEY (`item_id`) REFERENCES `setting_items` (`id`)
  72. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci /* 设置值表 */;