设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

几万年前,有一只猴子大闹地府后删库跑路...(2)

发布时间:2019-12-25 22:25 所属栏目:115 来源:站长网
导读:孙猴子自己么,虽然罪过不小,但是他会闹,能力还强。为了和谐天庭管理层还是为他做了特殊标记,在数据库里加上一个 TAG,设定为神仙级,计算寿命但不设定界限,有异常情况直接发出系统警报,和 RuLai -SkyNet All-

孙猴子自己么,虽然罪过不小,但是他会闹,能力还强。为了和谐天庭管理层还是为他做了特殊标记,在数据库里加上一个 TAG,设定为神仙级,计算寿命但不设定界限,有异常情况直接发出系统警报,和 RuLai -SkyNet All-in System 系统联动,确保一方平安。

参考文献:

0 、《Big Data Application Platform for Hell》[J] InHell Hell-SCI收录

1、《论Paxos算法在阴间生死管理系统中的应用与优化》[J] 阴间信息技术 玉帝元年 第7788卷 核刊

2、《论Consistent Hash在阴间生死管理系统云中的应用》[M]阴间信息技术 玉帝9527年 第125222 核刊

3、 《论超大规模稠密矩阵在阴间生死管理系统中的理论研究》[C] 信息技术阴间应用大会 9528

4、 《论孟婆汤在阴间生死管理系统库存管理当中的管理流程》 [J] 阴间食品与营养 VOL 2241554

5、《论牛头马面阴间勾人大队的管理电子化》[J] 阴间数字化城管研究 VOL15486488789

6、《论天庭-西天-阴间点对点技术在阴间办公自动化中的实现》 [J] 阴间实用软件增刊。

地狱数据库是如何设计的?

来自知乎网友萝魏紫的回复:

https://www.zhihu.com/question/29775354/answer/287551487 

关于孙悟空无姓无名的时候,阎王生死簿是怎么写的呢?这个问题,当然是 ID 呀,每个东西 New 出来就有个 ID,没人用 Name 做主键的!

几万年前,有一只猴子大闹地府后删库跑路...

根据原文可以得知:

悟空道:“胡说!胡说!常言道:‘官差吏差,来人不差。’你快取生死簿子来我看!”十王闻言,即请上殿查看。

悟空执着如意棒,径登森罗殿上,正中间南面坐上。十王即命掌案的判官取出文簿来查。

那判官不敢怠慢,便到司房里,捧出五六簿文书并十类簿子,逐一查看。裸虫、毛虫、羽虫、昆虫、鳞介之属,俱无他名。

又看到猴属之类,原来这猴似人相,不入人名;似裸虫,不居国界;似走兽,不伏麒麟管;似飞禽,不受凤凰辖。

另有个簿子,悟空亲自检阅,直到那魂字一千三百五十号上,方注着孙悟空名字,乃天产石猴,该寿三百四十二岁,善终。

悟空道:“我也不记寿数几何,且只消了名字便罢!取笔过来!”那判官慌忙捧笔,饱掭浓墨。悟空拿过簿子,把猴属之类,但有名者,一概勾之!

阎王们只有硬 Copy,但是在硬 Copy 上更改,也会生效,所以应该是每天晚上跑 Batch 同步。

你看,原文有告诉你数据库设计了,首先他是分类型的,我估计可能是按照比如生物学那种树状分类,所以我们可以认为,生死簿应该是树状的 NoSQL 存储,或者实现了树状表,子表的 RMDB。

你仔细看,孙悟空属于魂字1350 号,这个魂字,一定是 Namespace 了,然后是自增主键,主键上标有自然信息,名字,类型,年龄,所以,这个主键是记录创建的时候给的,名字确定了,再补而已。

而且,你看孙悟空和其他猴子不在一个猴属之中,更确定了生死薄是树状的存储结构。

因为主键记录上有死亡时间,看起来是每天晚上跑个 Batch,把当前时间-出生时间=死亡时间的数据筛选出来,送去执行部门干掉。触发器太麻烦,跑 Batch 拉个报表给黑白无常就可以了。

这个系统有问题,更新的 Batch 不看数据是否有篡改就直接更新,这说明数据安全性没有考虑,我给地府推荐 OWASP 项目,用来提高安全性。

我曾和几个架构师聊天聊到这个问题,大家觉得这个主意很有趣,发起了《我帮阎王设计表》主题活动,来锻(qiong)炼(ji)设(wu)计(liao)能(xia)力(che)!

我汇总了下 ER 高层设计,如下图:

几万年前,有一只猴子大闹地府后删库跑路...

主要来说,首先有一个字典表,规定了生物分类(CATE),考虑到每种分类的 UUID 类型应该不同。

比如孙悟空属于的魂字,看上去东西就不多,很可能就是一个 int id,但是如果是虫子类,东西可能太多,一个 long 都不一定能装下,可能需要带编码的 vchar。

所以给每个 CATE ID 定义一种自增编码方式,以兼容将来万一出现机器人也要死,这样地府的系统不需要重做。

给予每种 ID 一个表明后缀,这样可以分表,不用把每种都放在同一个表里。

对于 Transaction 表,每种属性都有两个表,一个是已死表,作为历史数据备查;一个是存活表,这样做到了读写分离,增强性能。

每天新增的生物,根据其自己的 UID 插入表,主键写入速度有保证,这点上,考虑到地府不负责出生,我们提供一个 AMQP 高性能 Message Q 来给出生部门,可能是送子观音来写入,当然也可以提供 Restful API。

同时,每天晚上跑个 Batch,遍历存活表,将死期是今天的数据筛选出来,放入 Dead 表,同时生成报表,交给索命部门,也就是黑白无常做实际杀死工作。

所以架构图也出来了:

几万年前,有一只猴子大闹地府后删库跑路...

看到这里,我不得不说,程序员们是真的皮....难道不怕被阎王喊去面向地狱编程?

真的有程序员做出了完整的地府后台管理系统

这不,前段时间,就有这么一个段子火了。某位程序员日有所思,夜有所梦,终于有一天梦见自己见阎王爷了。阎王爷还叫他给生死簿做个后台管理系统。

几万年前,有一只猴子大闹地府后删库跑路...

还真有程序员把地府后台管理系统原型做出来了,目前这个项目已经在开发中...

Github围观地址为:

https://github.com/canxin0523/thesixsectorTeam 

小编看了下 Demo,功能相当齐全:

 

用户登录:为了避免几百年前被猴子删库这样的悲剧再度重演,有编制的地府工作人员必须使用账号密码登录才能访问管理系统。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读