新手问题 求科普数据库外键及常用字段的建表方法,遇到一个问题,详见帖子内容

fengzhilian818 · 2014年04月28日 · 最后由 egg_show 回复于 2014年04月29日 · 2137 次阅读

正在做的一个项目 iCaper,遇到一个纠结的问题,我有两张表 user 表(用户表)和 dance 表(用户的舞蹈表),dance 表的用户 ID 是外键(user 表),但是 dance 表很频繁的在用到用户名,那么这种情况是可以直接把用户名也放在 dance 表的字段中吗?还是每次用的时候到 user 表去取呢? 1、用户名放在 dance 表中的话,感觉不是很合理,改用户名还得一起同时改,而且浪费资源; 2、用户名不放在 dance 表中的话,在查询 dance 的时候又常用到用户名,这样查询两个表效率会不会成为一个问题呢。 好纠结,有大神给普及下数据库知识不? 附上 iCaper 网站链接:icaper.net(网页精简版)第二版正在开发,改了好多,感觉好玩了很多,IOS 和 UI 组的同事很给力的额!!!

不知楼主是否遇到的是N+1 Query的情况

Dance.includes(:user).where(some conditions)

index 下就好了吧,提前优化是万恶之源....

你这网站突然放那么大声的音乐,简直是扯淡!吓死人了,立刻关掉再也不会去了。这种扯淡的用户体验还好玩?

吓尿了我艹。

#3 楼 @blacktulip 是你自己把音量开的比较大吧,亲,还有这种说法啊~~~

#1 楼 @algo31031 基本都是查询的一个 dance+ 一个 user(user_name,country_id...),但是这种查询很频繁,貌似没有用到 N+1 Query

#2 楼 @blacktulip 没懂,求详解!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号