mykingla/vote — Issue #1: 关于表结构中的几个字段
Author: ben7th
Created: 2012-02-27 07:29:52+00:00
State: open

从目前的几个migrate上来看，把 :vote_type 字段放在了 vote_items 这个表，以及 vote_result_items 这个表上。
是有打算以多态来实现关联逻辑吗？

从减少数据冗余的层面上来说，可能直接把区分“单投，多投n项”的属性信息放在 votes 表上，会更直接一些。

下面是这个思路下的一些建议，供参考：

因为需要考虑 “限投1项，限投2项，限投3项……限投n项”这样的约束，并且不应该出现建立了4个选项，却出现“限投5项这样的约束”。所以应该是需要进行校验，在model层面自定义校验方法的，例如：

# votes数据表上的参数字段名为 select_limit :integer
def validate
if self.select_limit > selfs.vote_items.count
errors.add(:base,"限投数目设置超过了实际选项数")
end
end

votes 和 vote_items 在一个表单关联保存的时候，可以利用Rails的 Nested Object Forms 特性，来在一次save中去全部关联保存。这样做上面的校验会比较容易。

当然如果有其他思路也可以先实现出来。