Data Model: Table QR Code
Entity: TableQrcode
Table: table_qrcode
Module: ruoyi-system
Fields
| Field |
Java Type |
DB Type |
Nullable |
Default |
Description |
| id |
Long |
bigint PK |
NO |
AUTO_INCREMENT |
主键 |
| tableNo |
String |
varchar(32) |
NO |
- |
桌号(如 A01、B02) |
| type |
Integer |
tinyint |
NO |
0 |
类型:0=摊位码, 1=公用码 |
| storeId |
Long |
bigint |
YES |
NULL |
关联摊位ID(摊位码必填,公用码为空) |
| nightMarketId |
Long |
bigint |
NO |
- |
夜市ID |
| qrCode |
String |
varchar(255) |
YES |
NULL |
二维码内容(URL 文本) |
| status |
Integer |
tinyint |
NO |
0 |
启用状态:0=启用, 1=停用 |
| useStatus |
Integer |
tinyint |
NO |
0 |
使用状态:0=空闲, 1=使用中 |
| createBy |
String |
varchar(64) |
YES |
NULL |
创建者 |
| createTime |
Date |
datetime |
YES |
NULL |
创建时间 |
| updateBy |
String |
varchar(64) |
YES |
NULL |
更新者 |
| updateTime |
Date |
datetime |
YES |
NULL |
更新时间 |
| remark |
String |
varchar(255) |
YES |
NULL |
备注 |
Relationships
| Relation |
Target Entity |
Type |
FK Field |
Description |
| 所属摊位 |
PosStore |
ManyToOne |
storeId |
摊位码关联的摊位 |
| 所属夜市 |
NightMarket |
ManyToOne |
nightMarketId |
所有码关联的夜市 |
Validation Rules
| Field |
Rule |
Condition |
| tableNo |
必填,长度 1-32 |
所有 |
| type |
必填,0 或 1 |
所有 |
| storeId |
必填 |
type=0(摊位码) |
| storeId |
必须为空 |
type=1(公用码) |
| nightMarketId |
必填 |
所有 |
| tableNo + storeId |
联合唯一 |
type=0,同一摊位下桌号不重复 |
| tableNo + nightMarketId |
联合唯一 |
type=1,同一夜市下公用码桌号不重复 |
State Transitions
status (启用状态):
0(启用) ←→ 1(停用)
useStatus (使用状态):
0(空闲) ←→ 1(使用中)
- status 由管理员手动切换
- useStatus 由订单系统自动更新(下单时→使用中,结账后→空闲)
Indexes
CREATE INDEX idx_store_id ON table_qrcode(store_id);
CREATE INDEX idx_night_market_id ON table_qrcode(night_market_id);
CREATE INDEX idx_type ON table_qrcode(type);
CREATE UNIQUE INDEX uk_table_no_store ON table_qrcode(table_no, store_id) WHERE type = 0;
CREATE UNIQUE INDEX uk_table_no_market ON table_qrcode(table_no, night_market_id) WHERE type = 1;
DDL
CREATE TABLE `table_qrcode` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`table_no` varchar(32) NOT NULL COMMENT '桌号',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '类型:0=摊位码, 1=公用码',
`store_id` bigint DEFAULT NULL COMMENT '关联摊位ID',
`night_market_id` bigint NOT NULL COMMENT '夜市ID',
`qr_code` varchar(255) DEFAULT NULL COMMENT '二维码内容',
`status` tinyint NOT NULL DEFAULT 0 COMMENT '启用状态:0=启用, 1=停用',
`use_status` tinyint NOT NULL DEFAULT 0 COMMENT '使用状态:0=空闲, 1=使用中',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_store_id` (`store_id`),
KEY `idx_night_market_id` (`night_market_id`),
KEY `idx_type` (`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='餐桌码表';