【无中生有】---2---数据库设计-1

任何一个系统目前都需要人的参与,电商系统需要客户,企业系统需要雇员,无人值守的系统也需要操作员

所以在业务对象中,人是一个必要的设计对象,不管是不是核心业务对象

Person表

字段名类型作用
Id整型人数据id
Name字符用户姓名
Sex整型性别
Birthday日期出生日期
IDCard字符身份证号
Status整型数据状态
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete*布尔数据是否逻辑删除

数据用户id之所以选择整型而不是guid类型,是为了索引优化。最后一个逻辑删除字段的使用,可以依据业务规则而改变,通常情况不建议直接物理删除人的数据,这样可能会造成业务数据找不到关联的人,但是,逻辑删除又存在一个问题,就是如果是一个人员变化较快的系统,可能会产生大量冗余数据,基于性能、运维、业务维护考虑,数据最好采用先逻辑删除然后物理转存废弃数据的方式。

另外,从数据安全性和业务安全考虑,创建时间和修改时间字段、创建人和修改人字段,都是必要,而且每个表都需要。但是更高安全性要求的数据则需要一个专门的操作记录维护表,而且人员的数据采用id而不是字符的姓名,是因为数据可变性的考虑。

这是一个人员的基础自然属性表,系统用户业务对象可以基于此表建立,但是不适合和此表完全融合。

User表

字段数据类型作用
UserName字符用户名
Picture字符头像地址
PersonId整型person表数据的id
Id整型数据id
Status整型数据状态
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除

UserName,通常此表也作用登录信息基础表,此字段也作为登录名,但是这样会有一些问题,尤其是登录方式多样化的时候,比如手机号、邮箱也可以登录,所以这个表就作为一个单纯的用户对象储存

而用户对象通常不会有惟一性,一个人会有多个用户名,因此personid字段不能做惟一性约束

LoginUser表

字段数据类型作用
LoginName字符登录名
Password字符登录密码
UserId整型User表数据的id
Id整型数据id
Status整型数据状态
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除

User表的数据和LoginUser表的数据是一对多的关系,尤其是目前登录方式多样化的情况下。所以以前流行的user表和loginuser表融合的设计不太适合了。

由于loginName不具备数据不变性,可能由于各种原因发生改变,所以数据变更需要确定一个原则,新增数据的登录名不能侵犯原有数据,否则,被侵犯数据的用户将发现自己登录名或者登录方式丢失的问题。

Contacts表


字段数据类型作用
Email字符人员的邮箱
Mobile字符手机号
Address字符人员联系地址
QQ字符qq号
CityName字符所在城市
ZipCode字符邮编
PersonId整型Person表数据的id
UserId整型User表的数据id
Id整型数据id
Status整型数据状态
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除

处于查询性能考虑,此处把用户表和人员表的id储存了





此系列以技术积累一般(没有超级牛人)的组织为目标,数据量根本就不打算向阿里和企鹅的方向去想,设计目标够用就行,没成为GCC流传度软件那样的妄想。

所以,如果不是那种会害人产生经济损失或者技术上确实太丢人的bug,希望大家拿砖轻砸。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值