我从来没有在PHP中创建过购物车或论坛.除了查看和分析另一个人项目或查看教程,显示如何制作这样的项目或如何成为这样一个项目.一个人如何知道如何设计数据库结构来创建这样的东西?我可能通过反复试验猜测它...
你应该阅读并理解规范化的基础知识.对于大多数项目,标准化为第三范式将是正常的.当您想要或多或少的规范化时,总会存在某些情况,但了解其背后的概念将允许您考虑如何以规范化格式构建数据库.
这是规范表的一个非常基本的例子:
students student_id student_name student_class student_grade
一个包含各种数据的漂亮标准表,但我们可以立即看到一些问题.我们可以看到学生的名字取决于他的身份证,但是,学生可能参与多个班级,每个班级可能会有不同的等级.然后我们可以考虑这样的表格:
students student_id student_name class class_id class_name
这还不错,现在我们可以看到我们有各种各样的学生和各种班级,但我们没有抓住学生的成绩.
grades student_id class_id grade
现在我们有了第3个表格,它允许我们理解特定学生,特定班级和与该班级相关的成绩之间的关系.从我们的第一个初始表开始,我们现在在规范化数据库中有3个表(假设我们不需要为了示例而进一步规范化成绩:))
我们可以从这个非常基本的例子中收集一些东西:
我们的数据都绑定到某种键(student_id,class_id和student_id + class_id).这些是每个表中的唯一标识符.
通过我们的关键关系,我们能够将信息相互关联(学生#4096注册了多少课程?)
我们可以看到我们的表现在不包含重复数据(想想我们的第一个表,其中student_class对于许多学生来说可能是相同的值.如果我们必须更改类名,我们必须更新所有记录.规范化格式,我们只需更新class_id的class_name)