浏览 7711 次
锁定老帖子 主题:don't use join table
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-01
ruby 代码
随后Attending对象的属性、行为也慢慢出现了。 可能大多数时候,多对多关系都可以拆分成两个一对多关系,并把原本没有意义的连接表变成一个模型对象。 另一个类似的:可能大多数时候,控制器只需要7种基本行为就够了,多余的行为可以描述为对另一种资源的基本操作。例如login实际上是session资源的create操作。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-02
完全视乎具体需要。如果盲目扩展join table,结果就是所谓的over-design。
其实大多数情况下join table就够了。 |
|
返回顶楼 | |
发表时间:2006-12-02
用attendance比较好啊,attending当名词好像是医院里的大夫
|
|
返回顶楼 | |
发表时间:2006-12-02
我喜欢
attendance = new Attendance(user,room); |
|
返回顶楼 | |
发表时间:2006-12-02
嗯,就像use case一样,是个视角的问题,看你更关心什么了,关心user,当然要user.attend(room)啦
|
|
返回顶楼 | |
发表时间:2006-12-02
是啊,视野决定观点
|
|
返回顶楼 | |
发表时间:2006-12-02
DHH的PPT上说status作模型也不错,比如attended,viewed
|
|
返回顶楼 | |
发表时间:2006-12-06
这个就要看需求了,其实先写个多对多,然后再重构也不失为一种办法
|
|
返回顶楼 | |
发表时间:2006-12-21
ruby 代码
1. attending = user.attend(room) 这段代码有点问题。 既然要把attending提炼成关系,代码一定是 attending = Attending.create(params[:attending]) 而params[:attending]也就是一个map了。:user=>1,:room=>2 |
|
返回顶楼 | |
发表时间:2006-12-22
join-table是一种实现手段。关联关系是否具有属性和行为这是一个建模的问题。“因为不用join-table,所以关联关系的属性和行为就浮现出来了。”,这样的表述好像有些顺序问题吧。
另外,把login当成create session,真的是个好注意吗? |
|
返回顶楼 | |