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

和人相关的一个很紧密的部分便是权限模块,这一块的数据库和功能组件设计完全能够独立出来讲,有人还专攻这个微笑

不过为了保持一致,接着讨论权限表的设计。

权限表需要一个权限数据表来说明需要对那些系统的功能进行授权:

Module表

ModuleName字符模块名
ModuleShowName字符模块展示名
Id整型数据id
ModuleId整型非自递增
Status整型数据状态
Sortby整型展示排序
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除
模块表数据

Function功能表

ModuleId整型模块id,可以非必有数据
ParentId整型父级功能id
FunctionName字符功能名
FunctionShowName字符功能展示名
Id整型数据id
FuntionId整型非自递增
Status整型数据状态
Sortby整型展示排序
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除
Authorize

UserId整型由于是系统使用概念,故和用户数据做关联而不是人的数据表
FunctionId整型功能表id
StartDate长精度日期授权开始时间
EffectiveDate长精度日期授权有效截止时间
Id整型数据id
Status整型数据状态:需要暂停、停止、正常、未启用四种状态
CreateTime长高精度日期数据创建时间
CreateBy整型创建人:人数据id
ModifyTime长高精度日期数据修改时间
ModifyBy整型修改人:人数据id
IsDelete布尔数据是否逻辑删除
最后在此表采用数据追加方式添加新的授权,即使是对同一个人的同一个功能,因为关系安全性问题。但是此种数据记录方式需要注意授权有效期重叠检查的问题。



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

所以,如果不是那种会害人产生经济损失或者技术上确实太丢人的bug,希望大家拿砖轻砸。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`vxe-table` 提供了 `sortable` 属性来实现列拖拽排序功能,使用非常方便。 只需将 `sortable` 属性设置为 `custom`,同时在 `column` 中设置 `orderList` 属性,即可启用列拖拽排序功能。`orderList` 属性是一个数组,用于存储列的排序顺序,按照数组的顺序排列列,例如: ```js [ { field: 'name', title: '姓名' }, { field: 'age', title: '年龄' }, { field: 'gender', title: '性别' } ] ``` 假设我们要实现对列的拖拽排序功能,可以这样设置 `vxe-table`: ```html <template> <vxe-table :data="tableData" :columns="tableColumns" :sortable="'custom'" @sort-change="handleSortChange"></vxe-table> </template> <script> export default { data () { return { tableData: [ { name: '张三', age: 18, gender: '男' }, { name: '李四', age: 25, gender: '女' }, { name: '王五', age: 30, gender: '男' } ], tableColumns: [ { field: 'name', title: '姓名', orderList: ['name', 'age', 'gender'] }, { field: 'age', title: '年龄', orderList: ['name', 'age', 'gender'] }, { field: 'gender', title: '性别', orderList: ['name', 'age', 'gender'] } ] } }, methods: { handleSortChange (params) { const { column, order } = params const orderList = column.orderList const index = orderList.indexOf(column.field) orderList.splice(index, 1) orderList.splice(order, 0, column.field) } } } </script> ``` 在上面的例子中,我们将 `sortable` 属性设置为 `custom`,并在 `column` 中设置 `orderList` 属性,用于存储列的排序顺序。在 `sort-change` 事件中,我们根据列的排序顺序更新 `orderList` 数组,从而实现列拖拽排序功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值