数据库建表

E-R图
在这里插入图片描述
(一)根据E-R图(实体关系图),分析当前系统具有以下几个模块:
用户,订单,商品,购物车
(二)几个模块间具有如下的关系:
①一个用户有多个订单(用户与订单之间是 一对一关系)
②一个订单可包含多个商品,一个商品可以被多个订单下单
(商品与订单之间是 多对多关系)
(三)建库、建表
create databases shopingmall;
use shopingmall;
在这里插入图片描述

记一下遇到的bug

“cannot add foreign key constraint”

翻译一下这句话的意思就是无法建立外键
一般遇到这个问题,进行如下的检查即可解决:
a、两张表里要设主键和外键的字段的数据类型或者数据长度应保持一致 (注意varchar的长度,还有 int和tinyint)
b、建立关联的两张表均不可以有记录存在

c、两个表的引擎应保持一致
(可以用如下查看表引擎的语句:show table status from <数据库名> where name=‘表名’;)

show table status from 数据库名 where name=‘表名’;
d、要设置外键的字段不能为主键

e、所参考的字段必须为主键

最后一条便是我这次遇到的,想在order表中添加字段bName,并且设置bName为外键(参考buyer表),但是在buyer表中,bName并不是主键,于是便出现如上的错误。

资源

这次可用到的软件是 Navicat,可用来建E-R图,和一切数据库操作。
Navicat下载链接

数据库操作可看我以前写过的一些分类,都在这个专栏里

数据库分类

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值