GoFrame数据库操作与ORM

4.1 数据库基础

4.1.1 关系型数据库概述

  1. 关系型数据库基本概念
  • 数据表
  • 主键和外键
  • 关系模型
  • 数据完整性
  1. 常见关系型数据库
  • MySQL
  • PostgreSQL
  • SQLite
  • Oracle
  • SQL Server

4.1.2 MySQL与PostgreSQL比较

  1. MySQL特点
  • 轻量级
  • 读写性能高
  • 社区支持广泛
  • 适合中小型应用
  1. PostgreSQL特点
  • 功能丰富
  • 复杂查询性能好
  • 支持复合类型
  • 适合复杂的企业级应用
  1. 选型建议
  • 业务复杂度
  • 性能需求
  • 扩展性
  • 团队技术栈

4.1.3 数据库设计原则

  1. 范式理论
  • 第一范式:原子性
  • 第二范式:消除部分依赖
  • 第三范式:消除传递依赖
  1. 设计最佳实践
  • 合理设计表结构
  • 避免冗余
  • 建立适当索引
  • 考虑数据增长

4.1.4 数据库范式

  1. 第一范式
-- 不符合第一范式
CREATE TABLE Student (
    StudentID INT,
    Name VARCHAR(50),
    Courses VARCHAR(100)  -- 多个课程用逗号分隔
);

-- 符合第一范式
CREATE TABLE Student (
    StudentID INT,
    Name VARCHAR(50)
);

CREATE TABLE StudentCourse (
    StudentID INT,
    CourseID INT
);
  1. 第二范式
-- 不符合第二范式
CREATE TABLE OrderDetail (
    OrderID INT,
    ProductName VARCHAR(50),
    ProductPrice DECIMAL(10,2),
    Quantity INT
);

-- 符合第二范式
CREATE TABLE Product (
    ProductID INT PRIMARY KEY,
    ProductName VARCHAR(50),
    ProductPrice DECIMAL(10,2)
);

CREATE TABLE OrderDetail (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老大白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值