开发设计laravel-shop电商

01 用户模块

2019-08-04  本文已影响13人  阳光的小mi

1.前言

本项目中,用户新增是通过用户自己注册得来的,因此本章节将注册/登录放到用户模块来讲。
本模块功能包括:

课程传送门

2. 功能分析

拿到需求,首先是看产品原型,了解清楚需求,想好了,再去做表设计,最后才动手写代码。

2.1 注册/登录

2.1.1 需求分析

根据课程中的介绍及效果页面,我们可以了解到,该功能的需求归纳为以下几点:

附功能效果图如下:


注册-效果图 登录-效果图 忘记密码-效果图

2.1.2 表设计

在表设计之前要先想好功能的实现逻辑。

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, # 自增id
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 用户名
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 邮件
  `email_verified_at` timestamp NULL DEFAULT NULL, # 邮件验证时间
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 密码,用于用户身份验证
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, # 登录成功后系统分配给用户的token,用于免密登录(记住密码)
  `created_at` timestamp NULL DEFAULT NULL, # 创建时间,用户的注册时间
  `updated_at` timestamp NULL DEFAULT NULL, # 更新时间
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2.1.3 代码借鉴

注册登录用的laravel自带的auth,操作简单,可以了解一下其内部实现方式laravel Auth原理浅析

2.2 收货地址

2.2.1 需求分析

收货地址是属于用户的一种属性,在购买商品选择收货地址时会用到。具体需求归纳如下:

收货地址-效果图

2.2.2 表设计

CREATE TABLE `user_addresses` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, # 自增ID
  `user_id` int(10) unsigned NOT NULL, # 所属用户id
  `province` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 收货地址-省
  `city` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 收货地址-市
  `district` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 收货地址-区
  `address` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 收获地址-具体地址
  `zip` int(10) unsigned NOT NULL, # 邮编
  `contact_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 联系人姓名
  `contact_phone` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, # 联系人电话
  `last_used_at` datetime DEFAULT NULL, # 最后一次使用时间
  `created_at` timestamp NULL DEFAULT NULL, # 创建时间
  `updated_at` timestamp NULL DEFAULT NULL, # 更新时间
  PRIMARY KEY (`id`),
  KEY `user_addresses_user_id_foreign` (`user_id`),
  CONSTRAINT `user_addresses_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2.2.3 代码借鉴

这一节的需求和实现都比较简单,但是有一些比较好的编码习惯可以学习,例如:

下一节:02 商品模块-基础

上一篇 下一篇

猜你喜欢

热点阅读