最近新任务要设计数据库,想来请教请教大家意见
发布于 8 年前 作者 puckpark 4008 次浏览 来自 问答

之前的工作都是简单的前端和一些php查询,这次自己在做一个多用户的课程预约系统,用户自己建课,然后给其他用户预约。之前没有设计过数据库,暂时先用mysql试试水,自己现在设计的结构是: ---- 用户表(存用户唯一id和pswd还有信息), 课程表(课程唯一id和创建用户id还有介绍信息), 预约表(每有一个预约,就存下预约的用户id和对应的课程id); ---- 这个三个表基本可以完成我想要的查询,但是我觉得缺点是,所有用户只要预约课就会把记录存进预约表里,假设有1000个用户,每个用户最少创建里一个课程,一个课程被100人预约了,那预约表里就会被记录 10001100 = 100000 条信息,在需要查询某个用户要查询自己所有预约课列表的时候,就必需去查询整个预约表,获得含此用户id的记录,预约表记录多了以后,肯定是个弊端,特被是mysql为例。想请问有没有办法拆分这个预约表,或者有其它办法来设计这个数据库结构,也可以尝试用noSql来做,只是之前php接触过mysql,所以暂时用它来做。 谢谢各位的阅读。

11 回复

100000 信息对mysql来说真的多么?

@fangker 100000 只是个假设,用户多了肯定量不断增加,预想结果肯定这个表的记录非常多,不知道有没有办法解决这个难题。

都不加索引的么,这不就是一个简单的多对多的关系么,10w数据不多

这数据量不大啊,一年10w条数据,抗一辈子都没什么问题

@mikan2000 索引都加啊,只是上面省略了。10W只是个假设啊,实际数字应该超过这个很多吧。

@eggggger 实际使用应该数字超过10W很多呢,就是希望找到设计思路,可以把这个单一的记录关系表有没有办法拆分开来记录。

数据量大,可以做分表,想拆几张拆几张,例如拆成100张: 预约表_00、预约表_01…预约表_99

@2YANG 第一次自己设计数据库,请问一下拆表后,要查询的时候,我怎么才能知道当时我插入的表是:预约表__xx 里的那一张里?

@puckpark 先预估下未来一段时间可能达到的数据量,过早分表的话,无论是开发还是维护都会引入很高的成本

刚做不用考虑这么多吧,数据多了再分库分表也来得及呀 自豪地采用 CNodeJS ionic

回到顶部