gpt4 book ai didi

SQL 数据库 - 何时使用单独的表与现有表的列?

转载 作者:行者123 更新时间:2023-12-04 19:06:47 25 4
gpt4 key购买 nike

所以我对 SQL 和数据库总体上还是很陌生(只为一个最小的站点设计了一个非常简单的),我正在尝试找出为一个高度数据库驱动的站点设计一些模型的最佳方法。以用户上传的画廊为例。我有一个画廊表,其中包含上传日期、名称等合理的列,画廊可以属于一个类别,其中不会有那么多(最多 6 个)。我应该让类别成为画廊表的一列吗?或者有一个单独的类别表,并且类别和画廊表之间有多对一的关系?我想在我的观点中做一些事情,比如按上传日期对一个类别中的所有画廊进行排序,这些之间是否有性能/便利性差异?将类别作为 Gallery 表的一列似乎比我更容易处理,但我不确定最佳做法是什么。谢谢。

最佳答案

首先,您需要了解概念上的差异。
根据经验,您可以安全地考虑以下等效项:

Table ~~~ Entity

Column ~~~ Attribute


因此,当您需要添加与实体(现有表)相关的新数据时,您可以问自己的问题是:

Is this piece of data an attribute of the entity?


如果答案是肯定的,那么您需要一个新列。
例如,假设您有一个描述 Student 实体的表:
Table Student:

[PK] Id
[FK] IdClass
Name
Surname
假设您还想添加每个学生的 GPA。这显然是学生的一个属性,所以可以在Student表中添加GPA列。
但是,如果您希望为每个学生定义部门,您将看到部门 不是 学生的一个属性。该部门是一个实体,它存在并且有自己的属性 外面学生的范围。
因此,学生的属性是对某个系的隶属关系,而不是系本身。
因此,您将创建一个新的 Department 表,并使用 Department.Id作为学生表中的 FK。
我希望这有帮助。干杯。

关于SQL 数据库 - 何时使用单独的表与现有表的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22617960/

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