订单案例

订单案例

抽象出来5张表

  1. Users 用户表
  2. Products:商品表
  3. types:商品类型表
  4. Orders:订单表
  5. Details:订单详情表

分别设计这5张表

  1. 创建数据库

    create database mall;
    
  2. Types表

    create table types(tid varchar(32) primary key, name varchar(20) not null unique);
    
    
    insert into types values(replace(uuid(), '-', ''), 'house'),(replace(uuid(), '-', ''), 'digit'), (replace(uuid(), '-', ''), 'sports');
    
  3. Users表

    create table users(uid int primary key auto_increment, name varchar(20) not null unique, pass varchar(20) not null, phone varchar(11) );
    
    insert into users values(null, 'wukong', '888888', '13333333333');
    insert into users values(null, 'bajie', '888888', '13999999999');
    
  4. Products表

    create table products(pid varchar(32) primary key, name varchar(20), img varchar(40), price double, tid varchar(32) references types(tid));
    
    insert into products values(replace(uuid(), '-', ''), 'mac pro', 'mac.jpg', 21999, 'dd6501cb628111eaad320242ac110003');
    
  5. Details表

    create table details (did varchar(32), count int, pid varchar(32) references products(pid));
    
  6. 整个命令行的结果如下

    mysql> create database mall
        -> ;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> use mall
    Database changed
    mysql> create table typestid varchar(32) primary key, name varchar(20) not null ;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(32) primary key, name varchar(20) not null' at line 1
    mysql> 
    mysql> insert into types values(replace(uuid(), '-', ''), 'house'),(replace(uuid(), '-', ''), 'digit'), (replace(uuid(), '-', ''), 'sports');
    ERROR 1146 (42S02): Table 'mall.types' doesn't exist
    mysql> create table typestid varchar(32) primary key, name varchar(20) not null ;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(32) primary key, name varchar(20) not null' at line 1
    mysql> create table types(tid varchar(32) primary key, name varchar(20));
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> insert into types values(replace(uuid(), '-', ''), 'house'), (replace(uuid(), '-', ''), 'digit');
    Query OK, 2 rows affected (0.01 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> drop table types;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> create table types(tid varchar(32) primary key, name varchar(20) not null unique);
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> insert into types values(replace(uuid(), '-', ''), 'house'), (replace(uuid(), '-', ''), 'digit');
    Query OK, 2 rows affected (0.01 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> select * from types;
    +----------------------------------+-------+
    | tid                              | name  |
    +----------------------------------+-------+
    | dd6501cb628111eaad320242ac110003 | digit |
    | dd64fd48628111eaad320242ac110003 | house |
    +----------------------------------+-------+
    2 rows in set (0.00 sec)
    
    mysql> create table users(uid int primary key auto_increment, name varchar(20) not null unique, pass varchar(20) not null, phone varchar(11) );
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> insert into users values(null, 'wukong', '888888', '13333333333');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> insert into users values(null, 'bajie', '888888', '13999999999');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> create table products(pid varchar(32) primary key, name varchar(20), img varchar(40), price double, tid varchar(32) references types(tid));
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> insert into products values(replace(uuid(), '-', ''), 'mac pro', 'mac.jpg', 21999, 'dd6501cb628111eaad320242ac110003')
        -> ;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from products;
    +----------------------------------+---------+---------+-------+----------------------------------+
    | pid                              | name    | img     | price | tid                              |
    +----------------------------------+---------+---------+-------+----------------------------------+
    | f07de571628211eaad320242ac110003 | mac pro | mac.jpg | 21999 | dd6501cb628111eaad320242ac110003 |
    +----------------------------------+---------+---------+-------+----------------------------------+
    1 row in set (0.00 sec)
    
    mysql> insert into products values(replace(uuid(), '-', ''), 'mac pro', 'mac.jpg', 21999, 'dd6501cb628111eaad320242ac11000333')
        -> ;
    ERROR 1406 (22001): Data too long for column 'tid' at row 1
    mysql> insert into products values(replace(uuid(), '-', ''), 'mac pro', 'mac.jpg', 21999, 'dd6501cb628111eaad32024eeee')
        -> ;
    Query OK, 1 row affected (0.01 sec)
    
    mysql> select * from products;
    +----------------------------------+---------+---------+-------+----------------------------------+
    | pid                              | name    | img     | price | tid                              |
    +----------------------------------+---------+---------+-------+----------------------------------+
    | f07de571628211eaad320242ac110003 | mac pro | mac.jpg | 21999 | dd6501cb628111eaad320242ac110003 |
    | fe12cc63628211eaad320242ac110003 | mac pro | mac.jpg | 21999 | dd6501cb628111eaad32024eeee      |
    +----------------------------------+---------+---------+-------+----------------------------------+
    2 rows in set (0.00 sec)
    
    mysql> delete from products where pid = 'fe12cc63628211eaad320242ac110003';
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from products;
    +----------------------------------+---------+---------+-------+----------------------------------+
    | pid                              | name    | img     | price | tid                              |
    +----------------------------------+---------+---------+-------+----------------------------------+
    | f07de571628211eaad320242ac110003 | mac pro | mac.jpg | 21999 | dd6501cb628111eaad320242ac110003 |
    +----------------------------------+---------+---------+-------+----------------------------------+
    1 row in set (0.00 sec)
    
    mysql> create table details (did varchar(32), count int, pid varchar(32) references products(pid));
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> create table orders(oid varchar(32) primary key, price double, addr varchar(50), paytype varchar(20), uid int references Users(uid), did varchar(32) references Details(did));
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show tables;
    +----------------+
    | Tables_in_mall |
    +----------------+
    | details        |
    | orders         |
    | products       |
    | types          |
    | users          |
    +----------------+
    5 rows in set (0.00 sec)
    
    mysql> 
    
发布了14 篇原创文章 · 获赞 29 · 访问量 5286

猜你喜欢

转载自blog.csdn.net/zpz2001/article/details/104771468