【任务5】注册与登录:初步完成注册相关功能

1、创建一个 register.hmtl 文件。
2、写一个 Register 接口,用于处理用户注册。
3、新建一个数据库,我们的数据库名字为 from_zeroto_expert
3、设计一个 user 表,,请把你的建表语句在下面打卡。

注意,建表语句必须自己写,不能复制粘贴哈,做项目如果只看不写=没做哦。

本问题对应的项目链接:从0设计一个web项目

PS:每次在最后,都要给出你的GitHub链接哦,方便我打开

共以下 17 个回答

  • 星河揽我入梦 永久会员 2024年6月10日 下午11:14

    CREATE TABLE user (
    id int NOT NULL AUTO_INCREMENT,
    username varchar(20) NOT NULL,
    password int NOT NULL,
    salt varchar(5) NOT NULL,
    PRIMARY KEY (id)
    ) ENGINE=InnoDB
    提交地址:https://github.com/CurryisCoat/community/tree/dev

    0 赞同 0 条回复
  • mpweixin用户 永久会员 2023年1月12日 下午4:55

    create table tb_user(id INT(11) not null auto_increment comment “主键”, name varchar(100) not null default “”, password varchar(100) not null default “”, primary key(id))engine=InnoDB auto_increment=1 ;

    https://github.com/Rajahn/FromZerotoExpert01

    0 赞同 0 条回复
  • 花海 永久会员 2022年11月8日 下午7:52

    建表语句
    create table if not exists usr
    (
    id int primary key auto_increment
    username varchar(20) not null unique,
    password varchar(32) not null,
    email varchar(32) unique
    );
    注册建表仅保存用户名和密码这些主要信息
    之后用户信息重新建表,分表储存便于之后查询
    GitHub:https://github.com/ZLPYYDS/FromZerotoExpert/tree/dev

    0 赞同 0 条回复
  • 豆子彩虹 普通 2022年10月21日 下午4:50

    CREATE TABLE IF NOT EXISTSuser
    (user_id INT PRIMARY KEY AUTO_INCREMENT,
    user_name VARCHAR(8) NOT NULL UNIQUE,
    user_pwd CHAR(32) NOT NULL,
    user_phone CHAR(11),
    user_email VARCHAR(16));
    本来创建的表有用户详细信息,后来参考评论区用户详细信息另存的想法,仅保留下来了有关用户登录的重要信息。
    GitHub:https://github.com/lei342345795/FromZerotoExpert

    0 赞同 0 条回复
  • Sco 普通 2022年10月17日 下午5:37

    create table user(
    id int primary key auto_increment,
    username varchar(30) unique not null,
    password varchar(16) not null,
    age int,
    sex varchar(5)
    );
    GitHub链接:https://github.com/Egofir/ferry

    0 赞同 0 条回复
  • 忆霁昕 永久会员 2022年10月15日 上午10:40

    建表语句

    create database if not exists from_zeroto_expert;
    use from_zeroto_expert;
    drop table if exists fzte_user;
    create table fzte_user(
        id int(10) primary key auto_increment,
        username varchar(255) unique not null,
        password varchar(255) not null,
        email varchar(255)
    )
    

    用户名不能重复
    email字段未使用,未来可以拓展找回密码,重置密码功能
    github仓库:https://github.com/yijixin66/FromZerotoExpert
    服务器:http://8.142.128.17/FromZerotoExpert/register.html

    0 赞同 0 条回复
  • 20 永久会员 2022年10月11日 下午4:56

    1.建表语句
    CREATE TABLE USER(
    uid int PRIMARY KEY AUTO_INCREMENT,
    username varchar(16) UNIQUE NOT NULL,
    password varchar(32) NOT NULL
    );

    2.github: (https://github.com/Guat0305/FromZerotoExpert/tree/dev)

    0 赞同 0 条回复
  • lucca 普通 2022年10月8日 上午3:44

    1.建表语句

    create table `users`
    (
    `id` int(11) not null auto_increment comment '主键',
    `nick_name` varchar(32) not null default '' comment '昵称',
    `avatar` varchar(255) not null default '' comment '头像',
    `email` varchar(32) not null default '' comment '邮箱',
    `phone` varchar(32) not null default '' comment '电话',
    `role` int(4) not null default 1 comment '角色',
    primary key (`id`) ,
    unique index `uni_nick_name` (`nick_name`) ,
    ) engine = innodb;

    create table `user_auths`
    (
    `id` int(11) not null auto_increment comment '主键',
    `uid` int(11) not null comment '关联本站用户id',
    `identify_type` int(4) not null default 0 comment '登陆类型(手机号|邮箱|用户名)第三方(微信|qq)',
    `identifier` varchar(255) not null comment '标识(手机号 邮箱 用户名或第三方应用的唯一标识)',
    `credential` varchar(255) not null comment '密码凭证(站内保存密码,站外不保存或保存token)',
    `salt` char(4) not null comment '加盐',
    primary key (`id`) using btree,
    unique index `uni_identifier` (`identifier`)
    ) engine = innodb;

    2.Github地址

    https://github.com/lucca-suen/FromZerotoExpert/tree/v2.1

    0 赞同 0 条回复
  • mpweixin用户 普通 2022年10月1日 下午8:55

    建表语句:create table tbl_user
    (
    id int auto_increment
    primary key,
    username varchar(10) null,
    password varchar(20) null,
    sex char null,
    age tinyint null,
    constraint tbl_user_username_uindex
    unique (username)
    );
    Github:https://github.com/Caesar-NoBug/FromZerotoExpert/tree/day4

    0 赞同 0 条回复
  • 潜行1 我是火车王! 普通 2022年9月28日 下午5:16

    学完Spring Boot之后重新搭建了一下项目和更新了github的地址
    https://github.com/Runninginsilence1/FromZero2Expert/tree/dev

    关于表的设计

    虽然这次任务的重点是表的设计…但是我思考了很久,最终还是觉得,至少对于任务要求的业务来说:用户名长度或者密码的设计应该由后端的代码控制,表的设计应该是偏向更加底层的需求才对,所以就直接使用最普通的表;关于用户信息的问题,我觉得用多表查询实现比较好,登录就用登录表,不要太多无用的信息。

    用户信息的验证

    我有几种思路,但是思来想去都觉得比较简单,而且代码水平不够实现困难,所以决定先实现最基本的功能再说;
    之前几次打卡都是用原生的Servlet做的,这次主要过了一遍ssm再重新来做

    mysql 版本5.7
    建表语句

    create table `user` (
        id bigint primary key auto_increment,
        username varchar(50) not null,
        passwormed varchar(16) not null
    )
    
    0 赞同 2 条回复
  • 月诉长安 永久会员 2022年9月22日 下午2:50

    数据库建表语句:
    CREATE TABLE user (
    id int AUTO_INCREMENT PRIMARY KEY COMMENT ‘用户id’,
    username varchar(15) not null UNIQUE COMMENT ‘账号’,
    password VARCHAR(15) not null DEFAULT(‘123′)COMMENT’密码’,
    user_nickname VARCHAR(10) not null DEFAULT(‘666′) COMMENT’用户昵称’
    )ENGINE=INNODB default charset=utf8mb4 ;
    github:https://github.com/Haiyang-coder/FromZerotoExpert/tree/dev
    其实用户的基本信息肯定不只是这么简单,其他信息也需要另一个表和这个表链接,不过我水平目前做起来有点慢,先完成最基本的任务,后面会重构和慢慢完善。

    0 赞同 1 条回复
    • shuaidi 永久会员 @ 月诉长安 2022年9月23日 上午10:22

      这样说吧,能完成 最基本 的,就合格了哦(对于没有做过一两个项目经验的人来说),对于做过一两个项目经验的人来说,那就是考验它是不是只跟着视频做而不思考了。

      所以呢,我觉得你完成最基本的就行,后面再来看看自己曾经做的,以及其他人提供的思考。

  • xiaoxi 永久会员 2022年9月22日 上午8:14

    建表语句:
    CREATE TABLE user (
    user_id INT NOT NULL AUTO_INCREMENT COMMENT “主键”,
    user_name VARCHAR(32) NOT NULL COMMENT “用户昵称”,
    user_account VARCHAR(16) NOT NULL COMMENT “用户账号”,
    user_password VARCHAR(16) NOT NULL COMMENT “用户密码”,
    user_email VARCHAR(32) NOT NULL COMMENT “用户邮箱”,
    PRIMARY KEY(user_id),
    UNIQUE KEY user_name_key (user_name),
    UNIQUE KEY user_account_key (user_account)
    )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT=”用户表”;
    因为之前了解过mysql的索引机制,就总结了下
    1. 表中主键字段设计为自增还是不自增?

    因为mysql中默认使用Innodb存储引擎,mysql建立主键索引默认为聚簇索引,而Innodb存储引擎创建的聚簇索引默认使用B+ Tree索引,B+ Tree索引是用B+树数据结构实现的。B+树的叶子节点存放完整的数据记录,而其它节点只存放主键值。B+是是按索引值(主键值)顺序构建的,这样可以提供查询速度,支持范围查询,因为B+树所有的叶子节点构成一个双向链表。当使用自增主键时,那每次新插入的数据就按顺序放在当前索引节点的位置,不需要移动数据,当页面被写满后,会自动开辟出一个新的页面。而使用非自增主键,这时每次插入数据的主键值是随机的,这条数据可能会插入到当前数据页的中间位置,这时就需要移动其它原有数据的位置,甚至会造成当前数据页的数据移动到其它数据页,称为页分裂。页分裂还可能会造成大量的内存碎片,使索引结构不紧凑,影响索引查询的速度。所以从索引优化的角度来看,主键字段应该设计为自增的。

    2.应该在哪些字段上建立索引?不应该在哪些字段上建立索引?

    索引的存在是为了帮助提高查询速度。但建立索引需要花费时间和占用空间,后期还需要动态维护索引。索引要建立合适的索引。

    应该建立索引的字段:

    • 值唯一的字段建立唯一索引。
    • 经常用于where、order by、group by的字段。如果不止一个字段,可以考虑建立联合索引。有时候使用索引可以省去对查询结果排序的时间。

    不应该建立索引的字段:

    • 字段中有大量重复数据的字段。比如性别字段,你根据性别搜索,都可能得到表中一半的数据,此时还不如不要索引。
    • 不经常用于where、order by、group by的字段。
    • 经常需要跟新的字段。如果一个字段经常跟新,那么维护这个字段的索引可能会造成很大的开销。
    • 表数据太少时,可以不建立索引,直接使用全表扫描。
      github仓库地址:https://github.com/shuaishuaixi03/FromZerotoExpert/tree/dev
    1 赞同 1 条回复
  • 秊 永久会员 2022年9月17日 下午5:48

    建表语句:
    create table user (
    id bigint auto_increment not null,
    username varchar(50) not null default(NULL),
    password char(32) not null default(NULL),
    email varchar(50) default(NULL),
    comment varchar(50) default(NULL),
    primary key (id),
    unique key username_unique (username)
    ) engine=innodb default charset=utf8mb4 comment=’用户’;

    服务器链接:http://124.223.184.187:8088/FromZerotoExpert
    Github仓库链接:https://github.com/jiangyklala/FromZerotoExpert/tree/dev

    0 赞同 0 条回复
  • 格局 永久会员 2022年9月16日 下午4:37

    CREATE TABLE user (
    id int(64) NOT NULL AUTO_INCREMENT COMMENT ‘用户id’,
    username varchar(32) NOT NULL DEFAULT ” COMMENT ‘用户名’,
    password varchar(50) NOT NULL COMMENT ‘用户密码’,
    PRIMARY KEY (id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’用户表 ‘;

    INSERT into user VALUES(1,”zzx”,”123″);
    设计登录接口,主要就是主键ID,用户名,密码,之后就是存储引擎的选择,默认是innoDB,这种存储引擎都是讲数据存储在磁盘上,了解了一下为什么选innodb,主要和表的设计有关,还有就是采用的底层的数据结构是B+树,B+树可以看成是B树的优化,主要就是B+树的非叶子节点不存储数据,只存储键值,这样的话就可以存储更多键值,使得树的高度边低,查询的效率也会提升。

    Github:https://github.com/zzxjava/FromZerotoExpert/tree/dev

    0 赞同 0 条回复
  • 猫南北 永久会员 2022年9月15日 下午8:24

    建表语句:
    DROP TABLE IF EXISTS fromzerotoexpert_user;
    CREATE TABLE fromzerotoexpert_user(
    id INT(64) NOT NULL AUTO_INCREMENT COMMENT ‘用户id’,
    username VARCHAR(255) NOT NULL COMMENT ‘用户名’,
    password VARCHAR(255) NOT NULL COMMENT ‘用户密码’,
    user_email VARCHAR(255) NOT NULL DEFAULT ” COMMENT ‘用户邮箱’,
    user_role int(4) NOT NULL DEFAULT ‘1’ COMMENT ‘用户角色,0为管理员,1为普通用户’,
    PRIMARY KEY (id)

    )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    github路径:https://github.com/HenrilineCC/FromZerotoExpert/tree/dev
    之前跟着视频做的项目,完全看着视频照抄即可,这次项目自己来搭建根据印象里将项目各个部分分层后感受到了有些地方确实分模块之后的方便和逻辑上的严谨,对整体模块也有更加清晰的认知。数据库对索引还不是了解很深所以没有加进去,等后续仔细学了之后再来重新设计。没有自己写过前端的对接,所以卡壳了一会。

    1 赞同 0 条回复
  • Second(S) 普通 2022年9月15日 下午12:33

    建表语句:
    DROP TABLE IF EXISTS user;
    CREATE TABLE user(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username varchar(255) DEFAULT(NULL),
    password varchar(255) DEFAULT(NULL),
    email varchar(255) DEFAULT(NULL),
    salt varchar(255) DEFAULT(NULL),
    activeStatus INT DEFAULT(0)
    )ENGINE=INNODB;

    gitHub路径:https://github.com/Second6s9/FromZerotoExpert/tree/dev

    gitHub防覆盖路径:https://github.com/Second6s9/FromZerotoExpert/tree/day05

    说明:本次建表只设计了六个字段,并没有把年龄、性别等详细信息加入在表中,原因有二,一是觉得如果把所有信息都写在一个表中,会降低查询性能,因此后续可能把更详细的信息拆分成另外的表比如student表,里面记录了用户更详细的信息,然后用外键链接。二是前端页面只提供了三个字段的表单,一些用户的信息也不好预填写,所以干脆设计成一个简单的表,里面只记录了一些必要的信息,等到用户填写详细信息的数据时,再对应详细信息的表。另外,对于索引的知识我了解的并不是很多,所以这里都没有加,还需要进一步学习。

    服务器地址:http://39.101.66.57:8080/FromZerotoExpert/register

    1 赞同 3 条回复
    • shuaidi 永久会员 @ Second(S) 2022年9月15日 下午12:51

      很棒,事实上,在以前我那个部门时,除了有一个 user 表以外,还有一个 user_details 表,记录用户的详细信息。user表则记录一些用的比较多的基本信息 + 记录一些外键。

    • Second(S) 普通 @ shuaidi 2022年9月15日 下午2:38

      嗯嗯,谢谢帅弟哥点拨,我也是学习了一些别人做的项目,然后自己做的时候照猫画虎似的设计,也不知道对错,总之学习的路还很长,哈哈。

    • shuaidi 永久会员 @ Second(S) 2022年9月15日 下午2:45

      可以滴,总之就是 做项目,思考 很重要,不管对错都行,看到就会给大家意见滴,每个模块弄完会进行总结之类的,只有你们思考了,才能知道我说的东西,不然就会觉得 理所当然。

      加油!

  • XxYong 普通 2022年9月14日 下午3:26

    建立表的语句:
    CREATE TABLE User (
    username varchar(25) COLLATE utf8_bin DEFAULT NULL,
    password varchar(25) COLLATE utf8_bin DEFAULT NULL,
    UNIQUE KEY name (username)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    [gitHub地址:] (https://github.com/BigDeann/FromZerotoExpert/tree/master)
    这次足足搞了两周才完成任务,这次任务学习了黑马的ssm课程,知道了哪些东西是用来做什么的。还真正的学会了使用终端方式提交代码至gitHub。不过这次的任务依然是照猫画虎跟着别人的文章写的,咱们就是说只能勤能补拙!

    2 赞同 0 条回复

# 回答此问题

后才能回答