使用mysql写一个火车站售票系统
时间: 2024-03-27 15:34:49 浏览: 61
好的,我可以为您提供一个简单的火车站售票系统MySQL数据库设计示例,包含以下表及其字段:
1. 用户表(user):记录系统中所有的用户信息,包括用户名、密码、姓名、身份证号、联系方式等。
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`id_card` varchar(20) NOT NULL,
`phone` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2. 车站表(station):记录所有的车站信息,包括车站编号、车站名称等。
```
CREATE TABLE `station` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`station_code` varchar(10) NOT NULL,
`station_name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
3. 车次表(train):记录所有的车次信息,包括车次号、起点、终点、出发时间、到达时间、车票价格等。
```
CREATE TABLE `train` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`train_no` varchar(20) NOT NULL,
`start_station` varchar(50) NOT NULL,
`end_station` varchar(50) NOT NULL,
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL,
`price` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
4. 座位表(seat):记录每个车次的座位信息,包括座位类型、座位号、是否已经售出等。
```
CREATE TABLE `seat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`train_id` int(11) NOT NULL,
`seat_type` varchar(10) NOT NULL,
`seat_no` varchar(10) NOT NULL,
`is_sold` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `train_id` (`train_id`),
CONSTRAINT `seat_ibfk_1` FOREIGN KEY (`train_id`) REFERENCES `train` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
5. 订单表(order):记录用户的订单信息,包括订单号、用户ID、车次号、座位号、购票时间、订单状态等。
```
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_no` varchar(50) NOT NULL,
`user_id` int(11) NOT NULL,
`train_id` int(11) NOT NULL,
`seat_id` int(11) NOT NULL,
`create_time` datetime NOT NULL,
`status` tinyint(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `train_id` (`train_id`),
KEY `seat_id` (`seat_id`),
CONSTRAINT `order_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `order_ibfk_2` FOREIGN KEY (`train_id`) REFERENCES `train` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `order_ibfk_3` FOREIGN KEY (`seat_id`) REFERENCES `seat` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
6. 支付表(payment):记录用户的支付信息,包括支付ID、订单ID、支付时间、支付金额等。
```
CREATE TABLE `payment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) NOT NULL,
`pay_time` datetime NOT NULL,
`amount` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`),
KEY `order_id` (`order_id`),
CONSTRAINT `payment_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
以上是一个简单的火车站售票系统MySQL数据库设计示例,当然实际应用中可能会有更多的表和字段,需要根据具体需求进行设计和优化。
阅读全文