-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
论坛数据库重构方案 #6
Comments
上文说到_表_的概念,我是默认还要继续使用MySQL作为后台数据库的。了解NoSQL的也可以来发表一下意见~ @huxuan |
NoSQL暂时不考虑吧,感觉没必要,而且NoSQL下面基本也可以划归到表和列的概念,不影响表的设计。 |
排楼用时间还是 tid 大小? |
显示的时候当然是用最后回复的时间啊~ @zhzhzoo |
应该至少会有两个timestamp,一个created_at,一个updated_at,按照updated_at就可以(而且我觉得我们可以考虑提供自定义的排序方案,让用户选按照什么什么排序神马的~ |
1 vote |
需要变更的数据库相关内容有:
|
增加的列表:
|
10 楼:我们这样转换吧:新 tid = 老 tid + 20000 * 老 bid,这样子就不用打一张很大很大的表了 |
11 楼:如果按 timestamp(此处用 created_at 吧) 排序和按 pid 排序结果不一样怎么办呀~ |
12 楼:嗯以及我们有些事情可以直接在老数据库上做啊~比如 uid 什么的。。。 |
@JeldorPKU 你说哪一楼的呀~ |
@zhzhzoo 13楼……嗯…… |
@JeldorPKU 啊改文件只是表达一下思想感情,没有任何想拿去执行的意思~ |
这只是权宜之计吧,以后帖子真的有这么多了怎么办,我还是建议重新编号,按bid, tid(bid优先)编新的tid。
我没有太理解你的意思。我觉得pid也应该是全局的(就像现在的fid),只不过它们分别与某个tid相关联而已,就像tid与bid相关一样。随后只要按created_at排序就行,排序的时候实时生成楼层编号。 12楼赞同。 |
嗯没有说清楚。。。我们分类讨论吧:
就是 pid 是 auto_increment,然后后发的帖子 pid 肯定比先发的帖子 pid 大,但是后发的帖子 created_at 可能比先发的帖子 created_at 小。。。 |
这个不是肯定的吗,created_at先发的小,pid也是啊。
这个……我觉得新发主题的肯定有一天会赶上……还是支持把老的tid重排之后接着加新的 |
嗯有点没听懂求解释。。。 |
楼上解释了一下~ |
就是说,你现在给老帖子一个很大的tid来避免重复,将来要是新发的帖子tid慢慢自增赶上了咋办? |
@JeldorPKU 新帖子自增从老帖子最大的 tid 开始~ |
@zhzhzoo OK pid那个我想明白了……是这样,pid不是有关联的tid嘛,直接把同一个tid的楼全部搬出来,然后按pid排序就行吧,这个时候created_at应该是严格递增的了。 ps 我好像还是没有明白后发的帖子created_at会大…… |
OK这个意思理解了…… |
把 bid 前的系数设成 20000 是因为水版的 tid 排到 18495 了。。。。。。 |
微笑 |
@zhzhzoo 有新的想法先不要写到wiki那里吧,过来大家讨论成熟了再放过去~ |
取消 null 表,在 threads 表 和 posts 表 里 加上 deleted 列,然后建一个表记录删除事件 |
@JeldorPKU ok~ |
对于userinfo表我有一个想法,就是不要tokentime之类的东西,每个token的有效时间到次日凌晨4点,否则会出现帖子编辑到一半挂了的情况。在0401--次日0400之间一次登录即可,期间除非手动注销,否则token一直有效。想想怎么解决签到的问题……大家有好的意见吗? 我不知道之前设计成30分钟有什么特别的意图吗? @ckcz123 |
@JeldorPKU 直接不要 token 了吧~ 存个用户名或者 uid 什么的。。。 |
还是没搞定系统通知。。。要不我们新建个 id 叫上帝然后把系统消息都改成上帝的通知吧。。。 |
然后站内信和通知应该是两个东西所以应该放进两个表的。。。 |
这是几个意思?我觉得通知的东西我们可以先不加……
站内信是sms,通知是messages |
啊说错了。。。把系统通知都改成上帝的站内信吧。。。 sms 是短信~ |
@zhzhzoo 我觉得还是要分开的……sms直接删掉就得了。我去更新一下wiki |
@zhzhzoo 你说的privilege表打算怎么设计? |
@JeldorPKU 有效期三十分钟这想法是前上帝Geek提出来的,具体意义我也没弄太清楚,我和I2只是实现了而已。。 |
@zhzhzoo 上帝账号admin。 |
@ckcz123 要不你问问Geek吧?可能有些安全因素我们也想不到。 |
关于pid,我的理解是,把thread表里按照created_at的时间戳排序,然后pid就出来了……每读一个thread,再处理相应的post,这样应该没有什么问题吧?是我考虑漏了还是?感觉你们讨论的好复杂…… |
我被帅帅绕到闰秒的问题里面去了……不然没有那么多事情的…… |
我把wiki里面的内容搬到一楼了~这样讨论起来好像方便一些,有好的建议和意见就提吧~ |
嗯我觉得不用存 token 直接 cookie 里存 uid。。。。我们可以用 https ~ |
1)cookie本身就是可以加密的;2)https是需要证书的,证书是需要钱的…… |
2)找“北大 CA”? |
@zhzhzoo 我还没见识过,你可以找给我看看…… |
嗯我想所谓权限,就是对用户和资源之间的动作的可不可的规定,然后我们就存用户是谁,资源是谁,动作是啥,可还是不可~ |
感觉有点麻烦的是继承的情况,而且在我们的场景下还是多重继承 |
有时候权限之间会冲突,比如哪一天我被继承了“被封禁用户”,然后 |
对了以及 “水版的帖子” 继承 “帖子” ~ |
我觉得这个设计可能需要等开学了咱们面谈……我没啥经验…… |
分类总结
以下部分是之前第一次发帖的时候的内容:
The text was updated successfully, but these errors were encountered: