数据模型设计师
使用数据模型设计器创建数据库
数据库设计
现在是时候设计你自己的数据库了。要做到这一点,请转到标签 Database在左边的面板上。
数据模型
数据库中的数据是以特殊的表(模型)的形式存储的。而且你可以注意到我们已经有一个模型。它是授权模块的一部分,默认包含在每个项目中。由于它,应用程序的新用户被创建,现有用户被管理。但我们现在不会纠结于它的研究,我们将创建我们自己的模型。
想象一下,我们正在开发一个地图服务。让我们创建一个包含国家信息的模型。要创建它,你需要在画布的一个空白区域右击并选择Create empty model.
要创建,我们只需要指定模型的名称。我们将在本课程的其他模块中处理自动生成端点和用户界面元素的问题。
模型字段
请注意,在创建之后,模型已经包含了4个字段。这些是系统字段,它们的存在大大简化了模型的初始创建和进一步使用。
ID (integer)- 唯一标识符,主键。它是为表中的每个新条目自动创建的,目的是确保没有重复的内容。正是通过ID,你可以唯一地识别表中的一条记录。它的值从1开始,每一个新条目都自动增加1。
CreatedAt (datetime)- 该记录在表中被创建的时间。
UpdatedAt (datetime)- 该条目最后被修改的时间。
DeletedAt (datetime)- 该条目被删除的时间。当然,只有在使用了软删除的情况下。也就是说,这样的删除,当记录只被标记为删除,并通过访问它的请求进行过滤,但同时物理上仍然在表中。这与批量删除不同,后者实际上完全删除了数据。
除了系统字段外,在创建的模型中添加自定义字段是明智的。假设我们想看到国家的名称和一些关于它的信息描述。
选择字段类型不应该是个问题。String 适合用于名称,Text 用于信息描述。
此外,还有四个开关可用。
Multiple values (Array)- 使用数组而不是单项。
Not null- 指定的字段不能是空的,它必须始终包含数据。
Unique- 字段的值必须是唯一的,在这种模式下,不能有两条记录的字段值是相同的。
Index- 表示将为这个字段创建一个特殊的索引,以加快搜索速度。
一般来说,只有在确实有必要的情况下,才会勾选标记。例如,我们可以为国家名称标记Not null 和Unique ,假设不可能有一个没有名字的国家,或者两个有相同名字的国家。然而,在创建应用程序的逻辑阶段控制这一点是个好主意,而不是对数据库本身进行限制。
同样地,创建一个包含城市信息的表。想一想它可以包含哪些数据字段,这些字段是什么类型。
数据模型关系
数据库中的数据并不是以分散的表的形式独立存在的。它们是以某种方式相互关联的。开发数据模型的关键是定义这些关系并建立关系。
为了建立这种联系,有必要用鼠标从一个模型的边界到另一个模型画一条线。在我们的例子中,我们肯定知道每个城市都位于某个国家,所以我们可以建立一个从国家到城市的链接。
有3种不同类型的连接。
一对一(has one) 。表中的每条记录都被映射到相关表中的一条记录(反过来也是如此)。一个简单的例子是一个人和他们的护照。我们总是可以确定这个连接是唯一的。一本护照只能有一个持有人,而每个人只能有一本有效的护照。
一对多(has many) 。一个表中的每条记录可以在另一个表中有许多记录。我们的数据库就是一个类似的例子。一个国家可以有许多不同的城市,但每个城市只能属于一个国家。这就是我们要做的连接。
多对多。一种关系,其中一个表中的多个记录可以对应于另一个表中的多个记录。一个简单的例子是教师和学生之间的关系。每个老师可以教很多学生,就像每个学生可以从很多不同的老师那里学习一样。