第18章 蓝图(2/2)
“文本文件。”张远敲了敲架构图边框,“几百上千条事件存成txt,程序启动时一次性加载进內存,后续都在內存里读,不用走sql解析和网络开销,比资料库快十几倍。”
他顿了顿,难得主动多说了一句:“我大二做下载站的时候,资料库被搞崩过好几次。后来换成文本,再也没出过事。”
李悦恍然补充,点了点电脑屏幕:“我们做个人站时试过,內存直读快得多,隨便一台兼容机当伺服器,用文本存事件,十万日活都能扛住。”
叶明又拿出一个笔记本,飞快记下:事件库用文本存,明白了。
记下了。
他翻到下一页,抬头问:“那用户帐號密码,也能用文本?”
张远摇头:“这个不行。”
“为什么?”
“用户数据要频繁改动,登录、註册、改密码、更资料都算,而且万一两人同时操作一个號,文本很容易覆盖出错,这种场景必须用资料库。”
叶明记下,抬头確认:“用户资料用资料库。”
这个也记下。
他继续追问:“好友关係、排行榜呢?”
张远笑了:“你还真问到点子上了。好友关係是典型的关联数据,用资料库关联表存,left join一查就出结果,特別方便。”
叶明再问:“排行榜也得用资料库?”
张远頷首,走到台式机前调出mysql界面:“对,排行榜要排序统计,资料库比文本强太多。咱们用的mysql 5.1,order by加limit就能搞定,加个索引效率更高。”
叶明飞快记录,把技术要点逐条记牢。
李悦在旁总结:“说白了就是混合存储,读多写少的事件库用文本,要频繁更新、复杂查询的用户数据、好友、排行榜,用资料库。咱们都熟,开发快,踩坑也少。”
叶明一边听一边点头。
懂了,以后就这么干。
他合上笔记本,长出一口气:“今天真长见识了。”
“这才哪到哪。”张远笑了,“技术这东西,边做边学,比纸上谈兵强。你底子薄肯下功夫,学起来反而快。”
这话在理。
叶明点头。
三人又顺著架构聊了片刻,叶明见时机正好,翻到扩展系统那一页,点在卡牌系统上。
“扩展系统:天赋卡、装备卡、人物卡,用金幣抽取,不同组合影响事件走向,卡牌分普通、稀有、史诗、传说四档稀有度。”
张远眼睛一亮,身体微微前倾:“这个有意思,卡牌能提留存,还能做差异化,比单纯属性点玩法有层次多了。”
李悦凑过来,点了点“金幣”二字:“金幣產出得设计合理,不然容易数值失衡。”
“每局结算给人生幣,分享结局双倍,再加每日签到、任务奖励,完成特定事件解锁额外金幣。”
张远已经在脑中搭建资料库:“卡牌数据、用户持有的卡牌信息全存资料库,抽卡用隨机数算法,后台可调概率,还能做防刷机制。”
叶明重点標记,继续讲社交系统:“好友系统、全服及好友排行榜,个人页面能展示自己搭配的卡牌组合。”
李悦来了兴致,敲了敲桌面:“这就有社交攀比的点了,留存率绝对能拉起来。”
张远微微皱眉:“光展示不够,得有玩家互动。”
叶明点点头。
这个我还真规划好了。