你怎么知道如何设计一个数据库当创建一个先进的php应用程序?
题
我从来没有创造了购物车,或论坛在php.除了观察和分析的另一个人的项目或观察教程,显示如何使这样一个项目或如何在这样一个项目。如何将一个人知道如何设计的数据库结构,以创建这样一个事情吗?im猜测其probbably通过试验和错误...
解决方案
其他提示
你应该阅读和理解的基础知识 规范化.对于大多数项目,正常化的第3次正式会就好了。总是有某些情况下,当你想要更多的或不正常化,但是了解背后的概念将允许你来想想怎么你的数据库是结构化格式。
这是一个非常基本的例的正常化的一个表:
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_name的class_id)
我还建议使用可视化编辑器来创建数据库模式。我最近一直在使用: http://dev.mysql.com/workbench/
创建数据库设计后,让具有更多经验的人查看并给您反馈。但是要知道,尽可能多的时间花在设计上,你最终还是要做实施,并且会发现你错过了一些东西,或者可以用另一种方式做得更好。
所以,设计,获得反馈,但不要害怕改变。
不隶属于 StackOverflow