gpt4 book ai didi

php - 在创建高级 php 应用程序时,您如何知道如何设计 mysql 数据库?

转载 作者:可可西里 更新时间:2023-11-01 06:39:13 24 4
gpt4 key购买 nike

我从来没有用 php 创建过购物车或论坛。除了查看和分析另一个人的项目或查看显示如何制作此类项目或如何成为此类项目的教程。一个人怎么会知道如何设计数据库结构来创建这样的东西?我猜测可能是通过反复试验...

最佳答案

您应该阅读并理解 normalization 的基础知识.对于大多数项目,规范化为第三范式就可以了。总会有某些场景需要或多或少的规范化,但了解其背后的概念将使您能够思考如何以规范化格式构建数据库。

这是规范化表格的一个非常基本的示例:

students
student_id
student_name
student_class
student_grade

一个包含各种数据的非常标准的表格,但我们可以立即看到一些问题。我们可以看到,一个学生的姓名取决于他的 ID,但是,一个学生可能参与了多个类(class),并且每个类(class)的成绩都不同。然后我们可以这样考虑表格:

students
student_id
student_name

class
class_id
class_name

这还不错,现在我们可以看到我们有各种学生和各种类(class),但我们还没有捕获学生的成绩。

grades
student_id
class_id
grade

现在我们有了第三张表,它使我们能够了解特定学生、特定类(class)和与该类(class)相关的成绩之间的关系。从我们的第一个初始表,我们现在在规范化数据库中有 3 个表(假设我们不需要为了示例而进一步规范化成绩:))

我们可以从这个非常基本的示例中收集到一些信息:

  • 我们的数据都与某种键相关(student_id、class_id 和 student_id + class_id)。这些是每个表中的唯一标识符。
  • 通过键控关系,我们能够将信息相互关联(学生 #4096 注册了多少个类(class)?)
  • 我们可以看到我们的表现在不会包含重复数据(想想我们的第一个表,其中 student_class 对于许多学生来说可能是相同的值。如果我们必须更改类(class)名称,我们必须更新所有记录. 在我们的规范化格式中,我们可以只更新 class_id 的 class_name)

关于php - 在创建高级 php 应用程序时,您如何知道如何设计 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com