数据库表的设计决定了我们能够存储何种类型的数据到数据库中。假设我们拥有一个用户表,那么我们便可以记录下每一位注册用户的详细信息。例如:
在这个例子中,每一行代表一个用户,每一列则代表不同的数据字段。
通常情况下,我们会在每张表中包含以下字段:id
、createdAt
、updatedAt
。其中,id
用于唯一标识数据行,而 createdAt
和 updatedAt
则用于记录数据的创建时间和最后更新时间。
列的类型
我们可以为表中的每个字段指定不同的数据类型。数据库支持的数据类型比 JavaScript 丰富多样。其中,我们常用的 varchar
类型用于存储字符串数据。不同的数据库系统可能有不同的数据类型,详细信息可以在 MySQL 列类型 和 PostgreSQL 列类型 中找到。
创建表的模式
表模式定义了表中包含哪些列以及这些列的数据类型。首先,我们将在 /src/databases
目录下创建数据库表模式。完成创建后,我们将在该目录下编写一个 user-table.ts
文件来存储用户数据。
若使用 PostgreSQL,可使用以下代码:
自增列
每张表都应包含一个名为 id
的自增列,每当插入新行时,系统会自动为该行生成一个 id
。
MySQL
PostgreSQL
创建时间
推荐每张表都包含一个名为 createdAt
的列,用于自动记录每行数据的创建时间。
MySQL
PostgreSQL
更新时间
每张表都推荐包含一个名为 updatedAt
的列,用于自动记录每行数据的最后更新时间。
MySQL
PostgreSQL
PostgreSQL 目前不支持自动设置更新时间,因此需要在代码中手动设置。
索引
索引能够显著提高查询性能,我们建议为所有可能被查询的字段添加索引。通常,我们会将索引命名为字段名后加 X
。