这个 app 主要分两大版块:
课程
练习题
根据现有教学材料内容,梳理出各个版块所需要的数据,如图(请放大看):
然后看着不知道如何下手,有点头大,主要因为:
求问下,如果你来做,会怎么设计、下手。或者有相关的建议?希望能得到些思路…
梳理产品的所有需求点,先按功能分,再根据优先级标号列表
把所有涉及的数据实体列出来,尽可能细化,后期发现粒度太细再合并就好
把实体的关系画一下,理清楚
考虑一下实际的用户场景 (user story),大概判断一下哪些场景是高频,数据的特征是怎样 (特征是指,W 多?R 多?改动频繁?一条数据大小怎样?)
5.大致搞清楚之后,先拿 MySQL/PostgreSQL 当基准,再看看是不是要根据特征添加/ 更换数据存储
6.一套下来大概也知道该怎样设计了
先用左侧的练习题抛砖引玉
题目表 -> type 区分判断 多选啥啥啥 如果需要逻辑更清晰就用单表继承
结构块表 -> belongs_to 题目 type 区分是材料还是答题
结构内容表 -> belongs_to 结构块 type 区分类型
以上三个表都可以做单表继承 未来统计会方便
这种需求最好别用 rails 这套来做。
java 最合适。。。 表量很大,关联多,跨表查询多。查询几乎很明确。
AR 这一套关联太多了就显得乱,跨表查询不方便,明确的查询用不上 AR 动态。
AR 跨表查询不方便
感觉还好啊,include(:user_attachments).where(user_attachments: { achived: true})
,写起来也很有乐趣啊。
我这里还有一堆 select, group_by 的报表,用 AR 其实只有比 SQL 灵活,因为可以不限制你在哪里加 where, group_by 等 SQL 字句,对于安排查询逻辑,方便很多。