项目案例的分析与创建(1)

QQ项目数据库的设计与搭建:

1.创建指定名称的数据库:

CREATE DATABASE QQDBPro;
USE QQDBPro;

2.所需的数据表:

用户表QQUser:
存储用户的基本信息 在这里插入图片描述
BaseInfo表:存储用户的个人信息
在这里插入图片描述
Relation关系表:存储用户之间的关系
在这里插入图片描述
具体需求说明:
在这里插入图片描述

基本操作步骤: 创建数据库 -> 创建数据表结构 -> 添加约束 -> 建立关系 -> 添加数据

创建QQuser数据表结构:
–用来存储用户注册账号时的填写信息

CREATE TABLE QQUser(  --用来存储用户注册账号时的填写信息
QQID INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
QQNickName VARCHAR(20) NOT NULL,
Password VARCHAR(16) NOT NULL,
Online	INT,  --0:在线、1:离线、2:隐身
LEVEL INT,
LastLoginTime DATETIME
);

添加约束:

ALTER TABLE QQUser
ADD CONSTRAINT CK_Password CHECK(LEN(Password)>=6 AND LEN(Password)<=16)
ALTER TABLE QQUser
ADD CONSTRAINT CK_Online CHECK(Online IN(0,1,2))

创建UserBaseInfo表:
–用户已注册完后的基本信息表

CREATE TABLE UserBaseInfo( --用户已注册完后的基本信息表
QQID INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
NickName VARCHAR(20) NOT NULL,
Gender INT, --0:1:Age SMALLINT,
Province VARCHAR(20),
City VARCHAR(10),
Address VARCHAR(100),
Phone VARCHAR(20)
);

添加检查约束:

ALTER TABLE UserBaseInfo
ADD CONSTRAINT CK_Gender CHECK(Gender IN (0,1))
ALTER TABLE UserBaseInfo
ADD CONSTRAINT CK_Phone CHECK(LEN(Phone)>=5 AND LEN(Phone)<=13)
ALTER TABLE UserBaseInfo
ADD CONSTRAINT CK_Age CHECK(Age>=1 AND Age<=120)

添加外键约束:

ALTER TABLE UserBaseInfo
ADD CONSTRAINT FK_Age FOREIGN KEY(QQID) REFERENCES QQUser(QQID)

创建Relation表:

CREATE TABLE Relation( --用户之间的关系表
QQID INT NOT NULL, --当前登录用户(A)
RelatedQQID INT NOT NULL, --好友用户(B)
RelationStatus INT --用户关系:0:B是A的好友 1:表示B是A的黑名单
);

添加检查约束:

ALTER TABLE  Relation
ADD CONSTRAINT CK_RelationStatus CHECK(RelationStatus IN(0,1))

添加外键约束:

ALTER TABLE  Relation
ADD CONSTRAINT FK_QQID FOREIGN KEY(QQID) REFERENCES QQUser(QQID)
ALTER TABLE  Relation
ADD CONSTRAINT FK_RelatedQQID FOREIGN KEY(RelatedQQID) REFERENCES QQUser(QQID)

注意:在QQUser和UserBaseInfo表中:

QQID是各自表的主键,但UserBaseInfo表中的QQID又是外键(引用关系的外键)
QQUser表中的QQID(引用关系的主键)
一般的主外键关系:1:N关系
这里的主外键关系:1:1关系

发布了98 篇原创文章 · 获赞 1 · 访问量 854

猜你喜欢

转载自blog.csdn.net/qq_34550459/article/details/105586328
今日推荐