DB.sql 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. -- epub_manage.book definition
  2. CREATE TABLE `book` (
  3. `id` INT NOT NULL AUTO_INCREMENT, -- 主键使用自动递增的整数类型
  4. `book_name` VARCHAR(255) NOT NULL, -- 合理缩短长度
  5. `book_id` VARCHAR(100) NOT NULL, -- 修改长度为 100
  6. `book_md5` VARCHAR(32) NOT NULL, -- MD5 长度是固定的 32 个字符
  7. `language` VARCHAR(50) DEFAULT NULL COMMENT '语言', -- 合理缩短字段长度
  8. `date` DATE DEFAULT NULL COMMENT '创建时间', -- 使用 DATE 类型来存储日期
  9. `creatorFileAs` VARCHAR(255) DEFAULT NULL COMMENT '电子书创建人',
  10. `UUID` VARCHAR(36) DEFAULT NULL COMMENT '电子书唯一编号', -- UUID 长度设置为 36
  11. `ISBN` VARCHAR(20) DEFAULT NULL COMMENT '电子书出版编号', -- ISBN 长度设置为 20
  12. `author_id` VARCHAR(100) NOT NULL COMMENT '作者id', -- 合理缩短字段长度
  13. `category_id` VARCHAR(255) DEFAULT NULL COMMENT '书籍类别编号',
  14. `Introduction` TEXT DEFAULT NULL COMMENT '简介', -- TEXT 类型更合适
  15. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 默认当前时间戳
  16. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 自动更新时间
  17. PRIMARY KEY (`id`), -- 使用 `id` 作为主键
  18. UNIQUE KEY `book_id_unique` (`book_id`) -- 为 `book_id` 设置唯一约束
  19. ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='书籍信息';
  20. -- epub_manage.author definition
  21. CREATE TABLE `author` (
  22. `id` INT NOT NULL AUTO_INCREMENT,
  23. `name` VARCHAR(255) NOT NULL, -- 将 name 长度调整为 255
  24. `author_id` VARCHAR(100) NOT NULL, -- 调整为更合理的长度
  25. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  26. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  27. PRIMARY KEY (`id`),
  28. UNIQUE KEY `author_id_unique` (`author_id`) -- 添加唯一约束,确保 author_id 唯一
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  30. -- 书籍的类别 category 一本书有且只有一个类型,但是类别可以有多本书
  31. -- epub_manage.category definition
  32. CREATE TABLE `category` (
  33. `id` INT NOT NULL AUTO_INCREMENT,
  34. `name` VARCHAR(255) NOT NULL, -- 将 name 长度调整为 255
  35. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  36. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  37. PRIMARY KEY (`id`)
  38. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  39. -- 书籍的风格 style 一本书可以有多种风格, 同时 风格 也可以对应多种书籍
  40. -- epub_manage.types definition
  41. CREATE TABLE `style` (
  42. `id` INT NOT NULL AUTO_INCREMENT,
  43. `name` VARCHAR(255) NOT NULL, -- 将 name 长度调整为 255
  44. `style_id` VARCHAR(100) NOT NULL, -- 将 style_id 长度调整为 100
  45. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  46. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  47. PRIMARY KEY (`id`),
  48. UNIQUE KEY `style_id_unique` (`style_id`) -- 为 style_id 添加唯一约束
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  50. CREATE TABLE `style_link_book` (
  51. `id` INT NOT NULL AUTO_INCREMENT,
  52. `style_id` VARCHAR(100) NOT NULL, -- style_id 长度为 100
  53. `book_id` VARCHAR(100) NOT NULL, -- book_id 长度为 100
  54. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  55. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  56. PRIMARY KEY (`id`),
  57. UNIQUE KEY `style_book_unique` (`style_id`, `book_id`), -- 添加组合唯一索引
  58. CONSTRAINT `fk_style` FOREIGN KEY (`style_id`) REFERENCES `style`(`style_id`) ON DELETE CASCADE, -- 添加外键约束
  59. CONSTRAINT `fk_book` FOREIGN KEY (`book_id`) REFERENCES `book`(`book_id`) ON DELETE CASCADE -- 添加外键约束
  60. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  61. -- epub_manage.chapter definition
  62. CREATE TABLE `chapter` (
  63. `id` INT NOT NULL AUTO_INCREMENT,
  64. `name` text NOT NULL, -- Chapter name with a maximum length of 255 characters
  65. `book_id` VARCHAR(100) NOT NULL, -- Book ID with a maximum length of 100 characters
  66. `author_id` VARCHAR(100) NOT NULL, -- Author ID with a maximum length of 100 characters
  67. `content` LONGTEXT DEFAULT NULL, -- Chapter content
  68. `level` INT NULL, -- Level of the chapter, can be NULL
  69. `order_index` INT NULL, -- Order index for sorting chapters, can be NULL
  70. `order_id` VARCHAR(255) NULL, -- Order ID, can be NULL
  71. `old_path` VARCHAR(255) NULL, -- Old path, can be NULL
  72. `path` VARCHAR(255) NULL, -- Current path, can be NULL
  73. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- Creation timestamp
  74. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- Update timestamp
  75. PRIMARY KEY (`id`),
  76. CONSTRAINT `fk_chapter_book` FOREIGN KEY (`book_id`) REFERENCES `book`(`book_id`) ON DELETE CASCADE, -- Foreign key constraint for book
  77. CONSTRAINT `fk_chapter_author` FOREIGN KEY (`author_id`) REFERENCES `author`(`author_id`) ON DELETE CASCADE -- Foreign key constraint for author
  78. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  79. -- epub_manage.files table definition
  80. CREATE TABLE `files` (
  81. `id` INT NOT NULL AUTO_INCREMENT,
  82. `file_id` VARCHAR(100) NOT NULL, -- file_id 长度为 100
  83. `md5` VARCHAR(32) NOT NULL, -- MD5 长度为 32
  84. `mimetype` VARCHAR(255) NOT NULL, -- mimetype 长度为 255
  85. `size` INT NOT NULL,
  86. `name` VARCHAR(255) DEFAULT NULL,
  87. `path` VARCHAR(255) DEFAULT NULL,
  88. `source_id` VARCHAR(100) DEFAULT NULL,
  89. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  90. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  91. PRIMARY KEY (`id`),
  92. UNIQUE KEY `file_id_unique` (`file_id`) -- 为 file_id 添加唯一约束
  93. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  94. -- epub_manage.book_link_file table definition
  95. CREATE TABLE `book_link_file` (
  96. `id` INT NOT NULL AUTO_INCREMENT,
  97. `file_id` VARCHAR(100) NOT NULL, -- file_id 长度为 100
  98. `book_id` VARCHAR(100) NOT NULL, -- book_id 长度为 100
  99. `author_id` VARCHAR(100) NOT NULL, -- author_id 长度为 100
  100. `create_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  101. `update_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  102. PRIMARY KEY (`id`),
  103. CONSTRAINT `fk_book_file` FOREIGN KEY (`file_id`) REFERENCES `files`(`file_id`) ON DELETE CASCADE, -- 外键约束
  104. CONSTRAINT `fk_link_book` FOREIGN KEY (`book_id`) REFERENCES `book`(`book_id`) ON DELETE CASCADE, -- 外键约束
  105. CONSTRAINT `fk_link_author` FOREIGN KEY (`author_id`) REFERENCES `author`(`author_id`) ON DELETE CASCADE -- 外键约束
  106. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;