📜  数据库中的实体 (1)

📅  最后修改于: 2023-12-03 15:10:18.300000             🧑  作者: Mango

数据库中的实体

在数据库中,实体代表着现实世界中的一个事物或对象,它是与数据库进行交互的最基本的单元。一个实体可以是一个物品、一个人、一笔交易等等。

常见实体

用户

在很多应用中,用户实体经常出现。它通常包含用户名、密码、电子邮件地址等相关信息。用户实体在应用中起到了非常关键的作用,因为很多功能都需要知道当前登录的用户是谁。

CREATE TABLE user (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL,
  password VARCHAR(50) NOT NULL
);

商品

商品实体通常存在于电子商务平台中。它包含了商品的名称、价格、描述等信息。

CREATE TABLE product (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  description TEXT,
  price DECIMAL(10, 2) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

订单

订单实体包含了一个用户下的所有商品订单信息。通常它包含了订单号、用户ID、商品ID等信息,以及订单的状态(未支付、已支付、已发货等)。

CREATE TABLE order (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  order_number VARCHAR(20) NOT NULL,
  user_id INT NOT NULL,
  product_id INT NOT NULL,
  status ENUM('UNPAID', 'PAID', 'SHIPPED') NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES user(id),
  FOREIGN KEY (product_id) REFERENCES product(id)
);
实体之间的关系

在数据库中,实体之间可以存在多种关系,包括一对一关系、一对多关系、多对多关系等。

例如,一个订单只能属于一个用户,但是一个用户可以有多个订单。这就是一对多的关系。在关系型数据库中,我们可以通过外键来建立实体之间的关联关系。

CREATE TABLE order (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  order_number VARCHAR(20) NOT NULL,
  user_id INT NOT NULL,
  product_id INT NOT NULL,
  status ENUM('UNPAID', 'PAID', 'SHIPPED') NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  FOREIGN KEY (user_id) REFERENCES user(id),
  FOREIGN KEY (product_id) REFERENCES product(id)
);
总结

在数据库中,实体是最基本的单元。它代表现实世界中的一个事物或对象,在应用中扮演着非常重要的角色。实体之间可以存在多种关系,建立实体之间的关联关系可以帮助我们在进行数据查询时更加方便。