• MySql数据库实现注册登录及个人信息查询的数据库设计


    前言:

    数据库使用的是mysql

    以下创建的表,实现以下功能:
    用户1,账号admin,年龄20,关联3件商品
    用户2,账号admin2,年龄30,关联2件商品(没有商品和用户1重复)
    用户3,账号admin3,年龄50,关联2件商品(这两件商品均是用户1的其中两种)

    登录查询对应数据的实现

    1.创建用户表Users,并添加三条数据:

    CREATE TABLE Users (
        user_id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(255) NOT NULL,
        age INT
    );
    
    -- 插入用户数据
    INSERT INTO Users (username, age) VALUES ('admin', 20);
    INSERT INTO Users (username, age) VALUES ('admin2', 30);
    INSERT INTO Users (username, age) VALUES ('admin3', 50);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.创建购物车商品表ShoppingCart,并添加相应数据(模拟数据):

    CREATE TABLE ShoppingCart (
        item_id INT PRIMARY KEY AUTO_INCREMENT,
        item_name VARCHAR(255) NOT NULL
    );
    
    -- 插入购物车商品数据
    INSERT INTO ShoppingCart (item_name) VALUES ('商品1');
    INSERT INTO ShoppingCart (item_name) VALUES ('商品2');
    INSERT INTO ShoppingCart (item_name) VALUES ('商品3');
    INSERT INTO ShoppingCart (item_name) VALUES ('商品4');
    INSERT INTO ShoppingCart (item_name) VALUES ('商品5');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.创建用户与购物车商品的关联表 (UserItem):

    CREATE TABLE UserItem (
        user_id INT,
        item_id INT,
        PRIMARY KEY (user_id, item_id),
        FOREIGN KEY (user_id) REFERENCES Users(user_id),
        FOREIGN KEY (item_id) REFERENCES ShoppingCart(item_id)
    );
    
    -- 插入用户与购物车商品的关联数据
    -- 用户1 (admin) 有三件商品(参数一是用户表id,参数二是商品表id,后面还可以添加其他与此用户相关联的表)
    INSERT INTO UserItem (user_id, item_id) VALUES (1, 1);
    INSERT INTO UserItem (user_id, item_id) VALUES (1, 2);
    INSERT INTO UserItem (user_id, item_id) VALUES (1, 3);
    -- 用户2 (admin2) 有两件商品(与用户1没相同的)
    INSERT INTO UserItem (user_id, item_id) VALUES (2, 4);
    INSERT INTO UserItem (user_id, item_id) VALUES (2, 5);
    -- 用户3 (admin3) 有两件商品,都与用户1 (admin) 相同
    INSERT INTO UserItem (user_id, item_id) VALUES (3, 1);
    INSERT INTO UserItem (user_id, item_id) VALUES (3, 2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4.查询对应的数据

    SELECT Users.username, Users.age, ShoppingCart.item_name
    FROM Users
    LEFT JOIN UserItem ON Users.user_id = UserItem.user_id
    LEFT JOIN ShoppingCart ON UserItem.item_id = ShoppingCart.item_id
    WHERE Users.username = 'admin2';  
    -- 这个名字就是用户名(根据用户名查询的,使用了左连接,如果查询不到匹配的值,左连接的右边没有匹配的数据会显示null)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    打印结果如下:
    admin2打印结果

    在这里插入图片描述
    admin打印结果

    在这里插入图片描述
    admin3打印结果

    在这里插入图片描述

    注册新用户关联的实现

    1.插入新的注册信息

    插入用户信息:首先,插入新用户的信息到 Users 表。假设新用户的用户名是 admin4 年龄是 25,可以执行以下 SQL 语句

    INSERT INTO Users (username, age) VALUES ('admin4', 25);
    
    • 1

    这样就添加用户成功了,执行上面的查询语句会打印出数据,但是商品那里就是null,因为还没有添加商品

    2.给新用户添加商品

    2.1 获取新用户的用户ID:新用户的用户ID是自动生成的(通常是自动递增的),可以使用 LAST_INSERT_ID() 函数来获取新用户的用户ID:

    SELECT LAST_INSERT_ID() AS new_user_id;
    
    • 1

    在这里插入图片描述

    2.2 将新用户与商品信息绑定:可以将新用户与商品信息绑定,以便以后可以直接添加商品。假设要将新用户与商品1和商品2绑定,执行以下 SQL 语句:

    -- 将新用户与商品1和商品2绑定
    INSERT INTO UserItem (user_id, item_id) VALUES (new_user_id, 1);
    INSERT INTO UserItem (user_id, item_id) VALUES (new_user_id, 2);
    
    • 1
    • 2
    • 3

    2.3,现在商品就和用户绑定了,再次执行一下上面的查询语句查询一下

    SELECT Users.username, Users.age, ShoppingCart.item_name
    FROM Users
    LEFT JOIN UserItem ON Users.user_id = UserItem.user_id
    LEFT JOIN ShoppingCart ON UserItem.item_id = ShoppingCart.item_id
    WHERE Users.username = 'admin4';  
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    这里已经成功查询到了admin4用户对应的数据了,如果需要更多的数据,可以分别创建更多的列表

    指定删除某一用户的数据

    -- 删除用户1(admin)的商品1
    DELETE FROM UserItem WHERE user_id = 1 AND item_id = 1;
    
    • 1
    • 2

    更新某一用户的数据

    -- 更新用户2(admin2)的商品4为商品2
    UPDATE UserItem
    SET item_id = 2
    WHERE user_id = 2 AND item_id = 4;
    
    • 1
    • 2
    • 3
    • 4

    最后还是执行上面的查询语句检查是否更新或者删除商品

  • 相关阅读:
    开通5G网络服务三个月,中国广电交出了什么样的答卷?
    Python编程 字典创建map与Zip
    Django常见面试题总结(二)
    关于Azure中Zero Trust战略在Web App中的实现
    猿创征文 | 详解二叉树之遍历及其应用(动图遍历演示)
    Android学习笔记 78. 输入控件
    whip和whep
    聊聊RNN&LSTM
    傅里叶变换在图像处理中的应用
    章节七:csv&excel
  • 原文地址:https://blog.csdn.net/weixin_68658847/article/details/133977105