diff --git a/README.md b/README.md
index 944851b..b013ae4 100644
--- a/README.md
+++ b/README.md
@@ -193,11 +193,13 @@ carwash_order/
CREATE TABLE vip_customers (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL COMMENT '客户姓名',
- phone VARCHAR(20) NOT NULL UNIQUE COMMENT '联系电话(唯一)',
+ phone VARCHAR(20) NOT NULL COMMENT '联系电话',
car_model VARCHAR(50) COMMENT '车型',
car_number VARCHAR(20) COMMENT '车牌号',
email VARCHAR(100) COMMENT '邮箱地址',
birthday DATE COMMENT '生日',
+ -- 复合唯一索引:确保手机号和车牌号组合唯一
+ UNIQUE KEY idx_phone_car_number (phone, car_number)
notes TEXT COMMENT '备注信息',
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
diff --git a/carwash_db.sql b/carwash_db.sql
index c5124fe..9229641 100644
--- a/carwash_db.sql
+++ b/carwash_db.sql
@@ -6,7 +6,7 @@ USE carwash_booking;
CREATE TABLE IF NOT EXISTS vip_customers (
id INT AUTO_INCREMENT PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL COMMENT '客户姓名',
- phone VARCHAR(20) NOT NULL UNIQUE COMMENT '联系电话(唯一)',
+ phone VARCHAR(20) NOT NULL COMMENT '联系电话',
car_model VARCHAR(50) COMMENT '车型',
car_number VARCHAR(20) COMMENT '车牌号',
email VARCHAR(100) COMMENT '邮箱地址',
@@ -14,7 +14,9 @@ CREATE TABLE IF NOT EXISTS vip_customers (
notes TEXT COMMENT '备注信息',
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- updated_at TIMESTAMP NULL
+ updated_at TIMESTAMP NULL,
+ -- 添加phone和car_number的复合唯一索引,确保手机号+车牌号组合不重复
+ UNIQUE INDEX idx_phone_car_number (phone, car_number)
);
-- 创建套餐表
diff --git a/update_vip_index.sql b/update_vip_index.sql
new file mode 100644
index 0000000..18830f1
--- /dev/null
+++ b/update_vip_index.sql
@@ -0,0 +1,11 @@
+-- 更新VIP客户表的索引结构
+USE carwash_booking;
+
+-- 1. 移除phone字段的UNIQUE约束(需要先删除原索引)
+ALTER TABLE vip_customers DROP INDEX phone;
+
+-- 2. 添加phone和car_number的复合唯一索引
+ALTER TABLE vip_customers ADD UNIQUE INDEX idx_phone_car_number (phone, car_number);
+
+-- 3. 验证索引添加成功
+SHOW INDEX FROM vip_customers;
\ No newline at end of file
diff --git a/update_vip_table.php b/update_vip_table.php
new file mode 100644
index 0000000..825f8c1
--- /dev/null
+++ b/update_vip_table.php
@@ -0,0 +1,59 @@
+";
+
+ // 1. 移除phone字段的UNIQUE约束
+ echo "正在移除phone字段的UNIQUE约束...
";
+ $stmt = $pdo->prepare("ALTER TABLE vip_customers DROP INDEX phone");
+ $stmt->execute();
+ echo "✓ phone字段UNIQUE约束已移除
";
+
+ // 2. 添加phone和car_number的复合唯一索引
+ echo "正在添加phone+car_number的复合唯一索引...
";
+ $stmt = $pdo->prepare("ALTER TABLE vip_customers ADD UNIQUE INDEX idx_phone_car_number (phone, car_number)");
+ $stmt->execute();
+ echo "✓ 复合唯一索引已添加
";
+
+ // 3. 验证索引
+ echo "正在验证索引...
";
+ $stmt = $pdo->prepare("SHOW INDEX FROM vip_customers");
+ $stmt->execute();
+ $indexes = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+ echo "
✓ 索引列表:
";
+ echo "
| Table | Non_unique | Key_name | Column_name |
|---|---|---|---|
| {$index['Table']} | "; + echo "{$index['Non_unique']} | "; + echo "{$index['Key_name']} | "; + echo "{$index['Column_name']} | "; + echo "