【发布时间】:2013-10-12 23:49:46
【问题描述】:
我正在开发我的 PHP 项目 [处理学生考勤系统]。我有一个学生列表以及他们的 id[jntuno],我需要在 mysql 中创建一个数据库来存储每个学生对每个科目的每日出勤率。所以我以这种方式创建了我的表:
表:students
字段:
slno int(5) auto increment,
jntuno char(15),
name char(50),
primary key(slno,jntuno).
数据:
这个students 表包含学生列表和他们的ID
现在我创建了另一个表:
表:dailyatt
字段:
date date,
subject char(10),
classesconducted int(2),
`11341A0501` int(2),
`11341A0502` int(2),
`11341A0503` int(2),
.
.
.
`11341A0537` int(2),
primary key(date,subject).
这个表格看起来像:
+------------+-----------+-----------------+------------+-----------+-----------+
|date |subject |classesconducted |11341A0501 |11341A0502 |11341A0503 |....
+------------+-----------+-----------------+------=-----+-----------+-----------+
| | | | | | |
现在每天在 PHP 网站上输入出勤率后,将为当天教授的每个科目创建一个新行。
但是很多人说数据库模型不好...
这个数据库结构有什么问题?
那么有人可以为我推荐一个更好的模型来解决这类问题吗?
【问题讨论】:
-
您应该研究数据库规范化 (en.wikipedia.org/wiki/Database_normalization) 并理解为什么在操作系统中使用至少为第三范式 (3NF) 的数据库存储事务数据是最佳实践,除非您有特定的充分理由不这样做。
标签: php database database-design database-schema