当前需要用MySQL存储住院号,收费项目(为一个不等长的数组),同一个住院号可能多次出现,如何指定存储策略
时间: 2024-10-03 22:04:53 浏览: 14
在MySQL中存储住院号、收费项目信息,由于收费项目是一个不等长的数组,并且同一个住院号可能会有多次记录,可以设计表结构来适应这种需求。这里建议使用表格关联的方式以及适当的数据类型来存储。
1. **创建主表**: 创建一个`patients`表,用于存储基本的住院信息,如住院号(`patient_id`)为主键:
```sql
CREATE TABLE patients (
patient_id INT PRIMARY KEY,
other_info ... -- 如果有其他共同的信息字段
);
```
2. **费用明细表**: 创建一个`charges`表,用于存储每个住院号的具体收费项目及其费用。通过住院号关联两个表,比如`charge_id`作为外键引用`patients`表:
```sql
CREATE TABLE charges (
charge_id INT AUTO_INCREMENT,
patient_id INT,
project_code VARCHAR(255), -- 收费项目标识
cost DECIMAL(10, 2),
FOREIGN KEY (patient_id) REFERENCES patients(patient_id)
);
```
在这个设计中,对于不等长的数组(即收费项目的数量各不相同),每个收费项目作为一个单独的行存储,`project_code`用来唯一识别每个收费项目。