精华内容
下载资源
问答
  • 客户账号状态图   前台登录状态图   客户预订状态图   会员卡状态图

    客户账号状态图

        

    前台登录状态图

        

    客户预订状态图

       

    会员卡状态图

       
    展开全文
  • 概述 需要根据《项目建议书》、《需求说明书》、界面原型、各种标准规范对数据库进行设计, 我们目前先参考这一设计图 ...如会员实体:账号、密码、真实姓名、性别、地址、邮编、电话、邮箱、状态
  • 一个简易的点餐系统的数据库设计 一、确定实体类和属性和关联关系,画出ER图 实体与属性 用户(用户id、账号、密码、用户类型、昵称、头像) 店铺(店铺id、店铺名、 创建时间、店铺图片、店铺简介、店铺评分、店铺...

    一个简易的点餐系统的数据库设计

    一、确定实体类和属性和关联关系,画出ER图

    实体与属性

    • 用户(用户id、账号、密码、用户类型、昵称、头像)
    • 店铺(店铺id、店铺名、 创建时间、店铺图片、店铺简介、店铺评分、店铺状态、店主(用户)id
    • 餐品(餐品id、餐品名、餐点图片、、价格、库存、销量、餐点类型、店铺id
    • 订单(订单id、创建时间、完成时间、总价格、订单状态、食客(用户)id
    • 订单明细(明细id、餐品id、餐品数量、所属订单id
    • 评价(评价id、评价内容、创建时间、评价状态、明细id

    实体间的联系

    • 用户-店铺:1对n
    • 店铺-餐品:1对n
    • 用户-订单:1对n
    • 订单-订单明细:1对n
    • 评价-订单明细:1对1

    画图

    在这里插入图片描述

    二、在数据库中创建对应的表

    三、从每张表里构建出实体类,为各个实体类建立编写基本的DAO类

    四、根据项目具体要实现的功能点,为其编写功能逻辑代码

    展开全文
  • 在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号,每类商品的商品名,数量,该类商品的总金额,交易的时间,负责本次收银的员工号).如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购...
  • 本次课程设计的题目是证券业务管理系统系统,系统内容要求是:证券业务管理系统有n个客户,客户有账号,身份证号,姓名,地址,开户日期。属性。资金状态,交易信息。股票信息,委托信息。成交状况等。 管理人员:...
  • 本次课程设计的题目是证券业务管理系统系统,系统内容要求是:证券业务管理系统有n个客户,客户有账号,身份证号,姓名,地址,开户日期。属性。资金状态,交易信息。股票信息,委托信息。成交状况等。 管理人员:...
  • 数据库课程设计(基于B/S)

    热门讨论 2008-12-28 15:28:06
    通过本课程设计进一步弄懂数据库系统及其相关的基本概念,理解数据库系统的系统结构、主要特点,掌握数据库设计的原理、方法及其基本过程,初步具备数据库应用设计的能力,初步形成运用数据库应用系统解决管理决策中...
  • 前阵子有个项目临时有个需求是要对某些接口进行AOP,最后将结果进行数据库的存储,该数据表为空白表,具体由开发进行初版设计。 在描述问题之前,先说一个很重要的结论:无论是自上而下或者是自下而上的开发习惯,...

    前阵子有个项目临时有个需求是要对某些接口进行AOP,最后将结果进行数据库的存储,该数据表为空白表,具体由开发进行初版设计。
    在描述问题之前,先说一个很重要的结论:无论是自上而下或者是自下而上的开发习惯,对于域模型和数据库模型之间的冲突都要尽量避免。
    怎么避免呢?
    个人领悟:在需要被设计的位置尽量的扁平化
    这句话怎么理解呢?
    以这次需求为例子,被AOP的接口本身的域模型和相关的表结构已经是稳定的状态。
    假定本次相关联的主要数据模型是一个用户表,用户表本身通过is_parernt字段来判断是否是父账号,通过is_channel来判断该账号的渠道等级,is_chananel = 1 时表示该主账号可以有下级账号,该数据表的结果大体如下图:
    在这里插入图片描述
    上面的数据模型中并不依赖另外一张表进行用户之间的关联,因为彼此上下级的用户关系为1:1。那么对于 is_channel = 0 的帐号来说,他的表存储字段为:
    id 账户Id
    is_channel 下级帐号标识 = 0
    is_parent 是否是父帐号 = 0
    parent_id 上级帐号/父帐号 = 上级帐号id
    同时域模型的设计则只有一个User类,没有特殊的1:n的映射DTO

    那么具体已存在的模型设计已经讲解完成,现在讨论一下业务需求(根据订单状态创建订单副本数据):
    ①该类接口为订单类接口,这里不考虑订单接口的模型,因为这里的AOP对订单本身的模型侵入不大
    ②根据订单状态进行选择性的加工数据,具体条件判断如下:
    a)状态变更为0时,通知当前用户所在的主账号以及其下面的所有子账号
    b)状态变更为1时,通知该订单创建用户所在的上级帐号及其子帐号(订单只能由下级帐号创建)
    c)状态变更为2时,通知该订单创建用户所在的下级帐号及其子帐号
    d)状态变更为3时,清理相关的订单副本数据
    e)变更的内容对客户端进行通知(使用的websocket)
    f)上面的状态2和3的需求为后期需求变更部分(巨坑伏笔),这种"天灾"真的是给技术设计不合适带来巨大的麻烦啊,总之还是自己太菜

    那么说一下业务设计和技术实现
    Firstly,是失败的思路,需求变更之前(调研不清晰的结果,太着急写代码了):
    1)因为上面的用户表设计,通过Is_channel来进行上下级的判断,为了匹配这种设计,我在订单副本的数据中进行的类似的设计,因为这样可以一定程度上达到1:1的原则,那么我的表设计字段如下:
    order_id 订单Id
    user_id 用户Id
    user_status 用户处理状态
    parent_id 父帐号id
    parent_status 父帐号处理状态
    2)针对上面的数据表模型,域模型方面没有什么特别的额外属性需要处理。嗯,目前看起来还不错,根据表结构和业务处理我只需要进行如下的逻辑代码开发就完事:
    a)某个订单发生了变化,依赖订单状态,获得需要通知的用户帐号,得到一个Object,该用户如果是父账号,则不需要加工user_id字段,如果是子账号,则同时加工parent_id字段。so easy 甚至还有个逻辑权限控制,舒服啊。
    b)其他CRUD接口:
    ①子账号读取通讯获得的订单副本数据后,将该副本的处理状态进行更新。
    ②获取对应的订单数据,父账号就根据parent_id匹配的进行查询,子账号就根据user_id匹配的进行查询。
    ③订单状态处理完成,根据order_id进行批量删除
    ④轻轻松松,我依然是一个快乐的CRUD工程师

    Second,需求变更之后
    1)状态变更2,3之后要通知对应的上下级账号,及其所有子账号,那么对于域模型来说,这就不是1:1的关系了,我加工的时候根据order_id需要生成1:n的订单副本数据。那么需要改动的内容呢(笑容逐渐消失.jpg)???
    a)AOP部分,实体加工方法处理的return type 从Object变更成List,对应的上下文处理逻辑需要变更。
    b)实体加工方面,获得父id , 加工一条parentId非空数据,再获得子id ,加工n条件userId非空数据,结果返回一个List。最后saveAll存储。这么一看好像问题也不大,可是我要通知客户端啊,原本通过全局的Auth认证获得用户数据就可以通知,现在需要通知的对象变成了n个,那么这个处理就不合适了,冲突开始出现了,代码开始变得复杂丑陋了,这如何能忍?没办法,改!
    c)首先进行AOP处理的逻辑分析:
    ①根据订单状态变更获得一个List的返回值,对于需要通知其所有子账户
    ②根据List进行用户id List的获取和数据库的存储
    ③根据用户id List进行通知
    d)表结构方面,删除parent_id & parent_status字段
    e)xml方面,删除根据parent_id进行处理的所有sql

    最后根据上帝视角进行一下总结
    在这里插入图片描述
    所以在数据模型和域模型的持久化设计中,不要一味地追求1:1的关系,让你的设计在当前并且在未来的需求变更中更加的扁平化,让代码可以更健壮。
    在这次的开发例子中,强关联的表是用户表,本身用户表通过is_channel实现表内关系的上下级关系,并根据is_parent进行父子账号的判断,对于这种设计的子账号间就是n:n的关系,那么在针对配合该表进行订单副本的需求加工时,某个单一子账号发起订单状态的变更关系时,其需要通知的账号(n个)又如何能通过一条记录来实现数据存储呢
    所以在上面的这种情况中,数据表设计就应该以order_id+user_id进行唯一索引,那么接下来无论该订单怎么变更,需要通知的用户都是一个或以上,那么数据结构就是稳定的,针对于user_id + parent_id的这种因为临时需求而实现的1:1设计,单独使用user_id来实现1:n的关系更加扁平,也更加的健壮。

    展开全文
  • 我们在很多网站注册会员时,注册完成后,系统会自动向用户的...激活成功后才能正常使用会员功能。  ... 业务流程: ... 2、写入数据库,此时帐号状态未激活。 3、将用户名密码或其他标识字符加密构造成激活识别码(你也

    我们在很多网站注册会员时,注册完成后,系统会自动向用户的邮箱发送一封邮件,这封邮件的内容就是一个URL链接,用户需要点击打开这个链接才能激活之前在该网站注册的帐号。激活成功后才能正常使用会员功能。 
    注册帐号、发送激活邮件、验证激活帐号、处理URL链接过期的功能。

    业务流程:
    1、用户提交注册信息。
    2、写入数据库,此时帐号状态未激活。
    3、将用户名密码或其他标识字符加密构造成激活识别码(你也可以叫激活码)。
    4、将构造好的激活识别码组成URL发送到用户提交的邮箱。
    5、用户登录邮箱并点击URL,进行激活。
    6、验证激活识别码,如果正确且未过期则激活帐号。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    准备数据表 
    用户信息表中字段Email很重要,它可以用来验证用户、找回密码、甚至对网站方来说可以用来收集用户信息进行Email营销,以下是用户信息表t_user的表结构:

    CREATE TABLE IF NOT EXISTS `t_user` ( 
      `id` int(11) NOT NULL AUTO_INCREMENT, 
      `username` varchar(30) NOT NULL COMMENT '用户名', 
      `password` varchar(32) NOT NULL COMMENT '密码', 
      `email` varchar(30) NOT NULL COMMENT '邮箱', 
      `token` varchar(50) NOT NULL COMMENT '帐号激活码', 
      `token_exptime` int(10) NOT NULL COMMENT '激活码有效期', 
      `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态,0-未激活,1-已激活', 
      `regtime` int(10) NOT NULL COMMENT '注册时间', 
      PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8; 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    HTML 
    在页面中放置一个注册表单,用户可以输入注册信息,包括用户名、密码和邮箱。

    <form id="reg" action="register.php" method="post"> 
        <p>用户名:<input type="text" class="input" name="username" id="user"></p> 
        <p>密 码:<input type="password" class="input" name="password" id="pass"></p> 
        <p>E-mail:<input type="text" class="input" name="email" id="email"></p> 
        <p><input type="submit" class="btn" value="提交注册"></p> 
    </form> 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    对于用户的输入要进行必要的前端验证,关于表单验证功能,建议您参考本站文章:实例讲解表单验证插件Validation的应用,本文对前端验证代码略过,另外其实页面中还应该有个要求用户重复输入密码的输入框,一时偷懒就此略过。 
    register.php 
    用户将注册信息提交到register.php进行处理。register.php需要完成写入数据和发送邮件两大功能。 
    首先包含必要的两个文件,connect.php和smtp.class.php,这两个文件在外面提供的下载包里有,欢迎下载。

    include_once("connect.php");//连接数据库 
    include_once("smtp.class.php");//邮件发送类 
    //然后我们要过滤用户提交的信息,并验证用户名是否存在(前端也可以验证)。
    $username = stripslashes(trim($_POST['username'])); 
    $query = mysql_query("select id from t_user where username='$username'"); 
    $num = mysql_num_rows($query); 
    if($num==1){ 
        echo '用户名已存在,请换个其他的用户名'; 
        exit; 
    } 
    接着我们将用户密码加密,构造激活识别码:
    $password = md5(trim($_POST['password'])); //加密密码 
    $email = trim($_POST['email']); //邮箱 
    $regtime = time(); 
    
    $token = md5($username.$password.$regtime); //创建用于激活识别码 
    $token_exptime = time()+60*60*24;//过期时间为24小时后 
    
    $sql = "insert into `t_user` (`username`,`password`,`email`,`token`,`token_exptime`,`regtime`)  
    values ('$username','$password','$email','$token','$token_exptime','$regtime')"; 
    
    mysql_query($sql); 
    /*上述代码中,$token即构造好的激活识别码,它是由用户名、密码和当前时间组成并md5加密得来的。$token_exptime用于设置激活链接URL的过期时间,用户在这个时间段内可以激活帐号,本例设置的是24小时内激活有效。最后将这些字段插入到数据表t_user中。
    当数据插入成功后,调用邮件发送类将激活信息发送给用户注册的邮箱,注意将构造好的激活识别码组成一个完整的URL作为用户点击时的激活链接,以下是详细代码:*/
    
    if(mysql_insert_id()){ 
        $smtpserver = ""; //SMTP服务器,如:smtp.163.com 
        $smtpserverport = 25; //SMTP服务器端口,一般为25 
        $smtpusermail = ""; //SMTP服务器的用户邮箱,如xxx@163.com 
        $smtpuser = ""; //SMTP服务器的用户帐号xxx@163.com 
        $smtppass = ""; //SMTP服务器的用户密码 
        $smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //实例化邮件类 
        $emailtype = "HTML"; //信件类型,文本:text;网页:HTML 
        $smtpemailto = $email; //接收邮件方,本例为注册用户的Email 
        $smtpemailfrom = $smtpusermail; //发送邮件方,如xxx@163.com 
        $emailsubject = "用户帐号激活";//邮件标题 
        //邮件主体内容 
        $emailbody = "亲爱的".$username.":<br/>感谢您在我站注册了新帐号。<br/>请点击链接激活您的帐号。<br/> 
        <a href='http://www.helloweba.com/demo/register/active.php?verify=".$token."' target= 
    '_blank'>http://www.helloweba.com/demo/register/active.php?verify=".$token."</a><br/> 
        如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接24小时内有效。"; 
        //发送邮件 
        $rs = $smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype); 
        if($rs==1){ 
            $msg = '恭喜您,注册成功!<br/>请登录到您的邮箱及时激活您的帐号!';     
        }else{ 
            $msg = $rs;     
        } 
    } 
    echo $msg; 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    active.php 
    如果不出意外,您注册帐号时填写的Email将收到一封helloweba发送的邮件,这个时候您直接点击激活链接,交由active.php处理。 
    active.php接收提交的链接信息,获取参数verify的值,即激活识别码。将它与数据表中的用户信息进行查询对比,如果有相应的数据集,判断是否过期,如果在有效期内则将对应的用户表中字段status设置1,即已激活,这样就完成了激活功能。

    include_once("connect.php");//连接数据库 
    
    $verify = stripslashes(trim($_GET['verify'])); 
    $nowtime = time(); 
    
    $query = mysql_query("select id,token_exptime from t_user where status='0' and  
    `token`='$verify'"); 
    $row = mysql_fetch_array($query); 
    if($row){ 
        if($nowtime>$row['token_exptime']){ //24hour 
            $msg = '您的激活有效期已过,请登录您的帐号重新发送激活邮件.'; 
        }else{ 
            mysql_query("update t_user set status=1 where id=".$row['id']); 
            if(mysql_affected_rows($link)!=1) die(0); 
            $msg = '激活成功!'; 
        } 
    }else{ 
        $msg = 'error.';     
    } 
    echo $msg; 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    激活成功后,发现token字段并没有用处了,您可以清空。接下来我们会讲解用户找回密码的功能,也要用到邮箱验证,敬请关注。

    展开全文
  • C#数据库图书管理系统

    万次阅读 多人点赞 2016-09-19 16:50:30
    一,设计目的 通过模拟图书管理系统,实现以下功能 学生账号的注册 学生对馆藏图书状况的查询 学生借书,还书状态的查询 学生借书以及归还图书 学生欠款的查询 二,框架分析 数据库主要包括: 学生表...
  • MySQL网络数据库指南

    2009-03-20 16:03:32
    1.2 一个样例数据库 4 1.2.1 美国历史同盟 4 1.2.2 学分保存方案 6 1.2.3 样例数据库怎样才能满足需求 6 1.3 基本数据库术语 7 1.3.1 基本术语 7 1.3.2 查询语言术语 9 1.3.3 MySQL的体系结构术语 9 1.4 MySQL教程 ...
  • 共六张表,数据库为mysql5.7.14,数据库设计与管理软件为Navicat Premium(破解版)。student为学生基本信息存储表,存储学生学号,姓名,昵称,性别,班级,籍贯,家庭住址,宿舍住址,登陆密码,学生邮箱,学生...
  • MYSQL网络数据库PDF学习资源

    热门讨论 2009-08-09 19:56:31
    MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。 它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL ...
  • 第2章 关系数据库建模及数据库设计 14 2.1 关系数据库简介 14 2.2 关系数据库模型 15 2.2.1 数据库模式 15 2.2.2 关系代数 15 2.2.3 关系演算 16 2.2.4 SQL 16 2.3 关系数据库的生命周期 17 2.3.1...
  • 深入浅出MySQL数据库开发、优化与管理维护

    千次下载 热门讨论 2014-01-21 15:48:01
     29.3.1 查看从服务器状态   29.3.2 主从服务器同步维护   29.3.3 从服务器复制出错的处理   29.3.4 logevententryexceededmax_allowed_packet的处理   29.3.5 多主复制时的自增长变量冲突问题   ...
  • MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL ...
  • 管理员数据表——007_admin字段名解释id记录id,自动生成的username用户名password密码name管理员姓名tel电话lastloginip最后登录IPlastlogintime最后登录时间loginhits登录总次数status账号状态,1启用,0停用...
  • 这是武汉理工大学数据库的课程设计。 该项目是其中一个名为“会议管理系统(CMS)”的项目。 我打开它的源代码。 这是CMS的成就。 你可以享受它。 不用了,但是请给我星星! 以下是该项目中存在的问题,稍后我将...
  • 18、[2014-06-03] 小说源码和笑话源码后台升级,修改超级管理员账号登陆状态为永久有效,防止后台采集时间过长导致登陆状态过期。 17、[2014-06-03] 触屏手机版全新升级,页面title标题与实际访问页面时时对应。 16...
  • 仓管系统设计

    2021-03-10 10:28:20
    登录功能: ...数据库查询时还要加上state=1,即状态为激活才可以登录成功 登录成功后直接跳转home页面,将用户信息储存sessionStorage,后期路由导航要用到 如此朴素的home页面,后期可以稍作修改。 退
  • Brt课程设计day8

    2019-09-30 12:44:14
    2、对主页面进行了优化,并且根据订单的不同状态设置了不同的分类,可以通过选择不同的订单状态查看订单 3、成功实现了查看按钮的功能,并且成功从数据库读取了数据 4、新增了业务员下单页面,并且通过登录不同...
  • :red_apple: 专为MySQL Inception设计的Web平台。 :anchor:基于InceptionSQL自动化审核平台。 功能一览 登陆 登陆流程分两种,一种对接企业内部的OpenLDAP,实现账号统一管理。另一种是直接走数据库。两种方式的...
  • 数据库设计用户:用户id、用户名称、登录账号、登录密码、联系电话、性别、年龄、注册时间、销户时间、用户状态(0正常、1注销)地址:地址id、用户id、城市编码、城市名、区县编码、区县名、乡镇编码、乡镇名、街道...
  • 账号密码存在session实现状态保持,session存在redis中 使用wtf生成token,进行csrf跨站请求保护 信息模块 后端返回HTML模板 经过浏览器渲染,展示界面 新增模块 填写好要新增的信息,发送ajax请求 后端查询mysql...
  • java博网即时通讯软件的设计与实现源码包含数据库,下载安装即用。 Server方面: 1 运行监控,打开Server,执行对其它用户的监控。 2 关闭监控,关闭Server,不在对其它用户进行监控。 3 阅览用户信息,阅览已...
  • 本课题是开发一个基于UDP的局域网聊天系统,运用软件工程的设计流程,综合运用数据库编程技术、Windows程序设计技术、网络通讯技术,以Visual C++ 6.0作为系统前台应用程序开发工具,MySQL和Berkeley DB作为后台...
  • 傻瓜式外卖点餐系统(无数据库) tips: 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户id,客户名,性别,密码,送餐地址,手机号,创建时间) ...
  • 一个完整的毕业设计带说明讲解 该音乐播放器是本地音乐播放器,用户可以将本地音乐添加到音乐曲库中,支持歌词显示及样式设置,支持用户注册,用户登录后可以定制自己的音乐播放列表。该项目主要应用到了Qt的数据库...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 156
精华内容 62
关键字:

数据库设计账号状态