table_struct.sql 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. -- 创建菜单分类表
  2. CREATE TABLE
  3. menu_cate (
  4. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 主键
  5. name TEXT NOT NULL DEFAULT '', -- 分类名称
  6. logo TEXT NOT NULL DEFAULT '', -- 分类Logo
  7. description TEXT, -- 分类描述
  8. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  9. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  10. sort INTEGER NOT NULL DEFAULT 0, -- 排序
  11. status INTEGER NOT NULL DEFAULT 1 -- 状态 (1-Active, 0-Inactive)
  12. );
  13. -- 新增菜单分类表的更新时间触发器
  14. CREATE TRIGGER trg_menu_cate_update_time AFTER
  15. UPDATE ON menu_cate FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  16. UPDATE menu_cate
  17. SET
  18. update_time = CURRENT_TIMESTAMP
  19. WHERE
  20. id = OLD.id;
  21. END;
  22. -- 创建商品表
  23. CREATE TABLE
  24. menu_commodity (
  25. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 主键
  26. name TEXT NOT NULL DEFAULT '', -- 商品名称
  27. cate_id INTEGER NOT NULL DEFAULT 0, -- 分类ID
  28. goods_no TEXT NOT NULL DEFAULT '', -- 商品编号
  29. is_single_spec INTEGER NOT NULL DEFAULT 1, -- 是否单规格 (1-单规格, 0-多规格)
  30. logo TEXT NOT NULL DEFAULT '', -- 商品Logo
  31. price REAL NOT NULL DEFAULT 0.00, -- 价格
  32. line_price REAL NOT NULL DEFAULT 0.00, -- 商品原价
  33. stock INTEGER NOT NULL DEFAULT 0, -- 库存
  34. sort INTEGER NOT NULL DEFAULT 0, -- 排序
  35. description TEXT NOT NULL DEFAULT '', -- 商品描述
  36. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  37. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  38. status INTEGER NOT NULL DEFAULT 1, -- 状态 (1-Active, 0-Inactive),
  39. FOREIGN KEY (cate_id) REFERENCES menu_cate (id)
  40. );
  41. -- 新增订单退款表的更新时间触发器
  42. CREATE TRIGGER trg_menu_commodity_update_time AFTER
  43. UPDATE ON menu_commodity FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  44. UPDATE menu_commodity
  45. SET
  46. update_time = CURRENT_TIMESTAMP
  47. WHERE
  48. id = OLD.id;
  49. END;
  50. -- 创建SKU表
  51. CREATE TABLE
  52. menu_sku (
  53. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 主键
  54. sku_no TEXT NOT NULL DEFAULT '', -- SKU编号
  55. logo TEXT NOT NULL DEFAULT '', -- SKU Logo
  56. goods_id INTEGER NOT NULL DEFAULT 0, -- 商品ID
  57. stock INTEGER NOT NULL DEFAULT 0, -- 库存
  58. price REAL NOT NULL DEFAULT 0.00, -- 价格
  59. line_price REAL NOT NULL DEFAULT 0.00, -- 商品原价
  60. status INTEGER NOT NULL DEFAULT 1, -- 状态 (1-Active, 0-Inactive),
  61. FOREIGN KEY (goods_id) REFERENCES menu_commodity (id)
  62. );
  63. -- 创建规格表
  64. CREATE TABLE
  65. menu_spec (
  66. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 主键
  67. goods_id INTEGER NOT NULL DEFAULT 0, -- 商品ID
  68. name TEXT NOT NULL DEFAULT '', -- 规格名称
  69. value TEXT NOT NULL DEFAULT '', -- 规格值
  70. status INTEGER NOT NULL DEFAULT 1, -- 状态 (1-Active, 0-Inactive),
  71. FOREIGN KEY (goods_id) REFERENCES menu_commodity (id)
  72. );
  73. -- 创建SKU和规格的中间表
  74. CREATE TABLE
  75. menu_sku_spec (
  76. sku_id INTEGER NOT NULL, -- SKU ID
  77. spec_id INTEGER NOT NULL, -- 规格ID
  78. PRIMARY KEY (sku_id, spec_id),
  79. FOREIGN KEY (sku_id) REFERENCES menu_sku (id),
  80. FOREIGN KEY (spec_id) REFERENCES menu_spec (id)
  81. );
  82. -- 创建店铺订单表信息
  83. CREATE TABLE
  84. store_order (
  85. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 自增ID
  86. order_sn TEXT NOT NULL DEFAULT '', -- 订单号
  87. table_id INTEGER NOT NULL, -- 所属桌码ID
  88. pay_type INTEGER NOT NULL DEFAULT 0, -- 支付方式 (1-现金, 0-Paypal)
  89. amount REAL NOT NULL DEFAULT 0.00, -- 订单金额
  90. pay_amount REAL NOT NULL DEFAULT 0.00, -- 支付金额
  91. discount REAL NOT NULL DEFAULT 0.00, -- 折扣金额
  92. param TEXT NOT NULL DEFAULT '', -- 订单参数
  93. service_fee REAL DEFAULT NULL, -- 服务费
  94. remark TEXT NOT NULL DEFAULT '', -- 用户备注
  95. create_time DATETIME DEFAULT NULL, -- 创建时间
  96. update_time DATETIME DEFAULT NULL, -- 更新时间
  97. status TEXT NOT NULL DEFAULT 'A', -- 订单状态
  98. pay_time DATETIME DEFAULT NULL, -- 支付时间
  99. pay_status INTEGER NOT NULL DEFAULT 1, -- 支付状态
  100. settle_status INTEGER NOT NULL DEFAULT 1, -- 结算状态
  101. goods TEXT NOT NULL DEFAULT '{}' -- 订单商品信息
  102. );
  103. -- 新增订单表的更新时间触发器
  104. CREATE TRIGGER trg_order_update_time AFTER
  105. UPDATE ON store_order FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  106. UPDATE store_order
  107. SET
  108. update_time = CURRENT_TIMESTAMP
  109. WHERE
  110. id = OLD.id;
  111. END;
  112. -- 创建店铺材料表信息
  113. CREATE TABLE
  114. store_material (
  115. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 材料表id
  116. material_no TEXT NOT NULL, -- 材料编号
  117. material_type TEXT NOT NULL, -- 材料类别
  118. name TEXT NOT NULL, -- 材料名称
  119. specification TEXT NOT NULL, -- 规格
  120. inventory INTEGER NOT NULL DEFAULT 0, -- 库存数量
  121. shelf_life INTEGER NOT NULL DEFAULT 0, -- 保质期
  122. unit TEXT NOT NULL, -- 单位
  123. img TEXT NOT NULL, -- 材料文件/图片id
  124. purchase_period INTEGER NOT NULL DEFAULT 0, -- 采购期数
  125. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  126. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  127. status INTEGER NOT NULL DEFAULT 1 -- 状态0下架1上架
  128. );
  129. -- 新增材料表的更新时间触发器
  130. CREATE TRIGGER trg_material_update_time AFTER
  131. UPDATE ON store_material FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  132. UPDATE store_material
  133. SET
  134. update_time = CURRENT_TIMESTAMP
  135. WHERE
  136. id = OLD.id;
  137. END;
  138. -- 店铺区域表
  139. CREATE TABLE
  140. store_area (
  141. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 区域id
  142. name TEXT NOT NULL, -- 区域名称
  143. description TEXT NOT NULL DEFAULT '', -- 区域描述
  144. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  145. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  146. status INTEGER NOT NULL DEFAULT 1 -- 状态 (1-有效, 0-无效)
  147. );
  148. -- 新增区域表的更新时间触发器
  149. CREATE TRIGGER trg_area_update_time AFTER
  150. UPDATE ON store_area FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  151. UPDATE store_area
  152. SET
  153. update_time = CURRENT_TIMESTAMP
  154. WHERE
  155. id = OLD.id;
  156. END;
  157. -- 店铺座位表
  158. CREATE TABLE
  159. store_table (
  160. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 桌子id
  161. area_id INTEGER NOT NULL, -- 所属区域id
  162. table_no TEXT NOT NULL, -- 桌号
  163. capacity INTEGER NOT NULL DEFAULT 0, -- 座位数
  164. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  165. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  166. status INTEGER NOT NULL DEFAULT 1, -- 状态 (1-有效, 0-无效)
  167. FOREIGN KEY (area_id) REFERENCES store_area (id)
  168. );
  169. -- 新增桌子表的更新时间触发器
  170. CREATE TRIGGER trg_table_update_time AFTER
  171. UPDATE ON store_table FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  172. UPDATE store_table
  173. SET
  174. update_time = CURRENT_TIMESTAMP
  175. WHERE
  176. id = OLD.id;
  177. END;
  178. -- 创建订单退款表
  179. CREATE TABLE
  180. store_order_refund (
  181. id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, -- 主键
  182. order_id INTEGER NOT NULL, -- 关联订单ID
  183. refund_amount REAL NOT NULL DEFAULT 0.00, -- 退款金额
  184. refund_reason TEXT NOT NULL DEFAULT '', -- 退款原因
  185. refund_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 退款时间
  186. create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 创建时间
  187. update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 更新时间
  188. status INTEGER NOT NULL DEFAULT 1, -- 状态 (1-有效, 0-无效)
  189. FOREIGN KEY (order_id) REFERENCES store_order (id)
  190. );
  191. -- 新增订单退款表的更新时间触发器
  192. CREATE TRIGGER trg_order_refund_update_time AFTER
  193. UPDATE ON store_order_refund FOR EACH ROW WHEN NEW.update_time = OLD.update_time BEGIN
  194. UPDATE store_order_refund
  195. SET
  196. update_time = CURRENT_TIMESTAMP
  197. WHERE
  198. id = OLD.id;
  199. END;