sky999
天山茗客 Lv7
UID 181291
Digest
2
Points 6
Posts 3284
金币 2269 块
Permissions 10
Register 2020-11-28
Status offline
|
根据前面提出的化工行业实验室管理系统的PHP文件结构,以下是一个简化的数据库结构示例,以表(table)的形式展示关键数据实体及其关系:
1. 用户表 (users)
sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
first_name VARCHAR(50),
last_name VARCHAR(50),
role ENUM('admin', 'user') NOT NULL DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. 项目表 (projects)
sql
CREATE TABLE projects (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3. 设备表 (equipment)
sql
CREATE TABLE equipment (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
manufacturer VARCHAR(255),
serial_number VARCHAR(100) UNIQUE,
purchase_date DATE,
status ENUM('active', 'inactive', 'repair') NOT NULL DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4. 试剂表 (reagents)
sql
CREATE TABLE reagents (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
chemical_formula VARCHAR(100),
concentration VARCHAR(50),
supplier VARCHAR(255),
batch_number VARCHAR(100) UNIQUE,
expiration_date DATE,
quantity DECIMAL(10, 2),
status ENUM('available', 'reserved', 'expired') NOT NULL DEFAULT 'available',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
5. 数据表 (data_records) (注意:这是一个简化示例,实际数据表可能包含更多字段和复杂的结构)
sql
CREATE TABLE data_records (
id INT AUTO_INCREMENT PRIMARY KEY,
project_id INT,
equipment_id INT,
reagent_id INT,
data_point1 DECIMAL(10, 2),
data_point2 VARCHAR(255),
... (其他数据点)
recorded_by INT,
recorded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (project_id) REFERENCES projects(id),
FOREIGN KEY (equipment_id) REFERENCES equipment(id),
FOREIGN KEY (reagent_id) REFERENCES reagents(id),
FOREIGN KEY (recorded_by) REFERENCES users(id)
);
6. 角色权限表 (role_permissions) (可选,用于更细粒度的权限控制)
sql
CREATE TABLE role_permissions (
id INT AUTO_INCREMENT PRIMARY KEY,
role ENUM('admin', 'user') NOT NULL,
permission VARCHAR(255) NOT NULL,
UNIQUE KEY (role, permission)
);
这个数据库结构是一个起点,你可以根据实际需求进行扩展和修改。例如,你可能需要添加更多的表来存储日志、通知、文件上传等。此外,对于复杂的数据关系,你可能还需要使用关联表(join tables)来维护多对多关系。
| ![](images/common/sigline.gif) 做好事情,赚取应得。
和睦共处,合作共赢。
|
|