父记录中的多个外键(Rails)

| 我试图摆脱我的联接表,以支持对大型数据集更快的数据库设计。我计划执行此操作的方法是将子代的ID存储在父记录中。 像这样: 父母表: id,child1_id,child2_id,child3_id,... child(100)_id 子表: id,grandchild1_id,grandchild2_id,... grandchild(100)_id 楷模: 父级 has_many:children,:depend =>:destroy accepts_nested_attributes_for:children 儿童 当属:父母 has_many:grandchildren,:depend =>:destroy accepts_nested_attributes_for:孙子 孙子 归属于:child 我的最终结果将是能够以相同的形式编辑父母,子孙。通过使用联接表已经可以做到这一点,但是我渴望提高性能 当我依靠联接表提供的功能时,如何获得更好的数据库性能? 请帮助,我已经在网上搜索很多天了:/谢谢!     
已邀请:
这是糟糕的数据库设计。如果父母有超过100个孩子怎么办? 3条建议: 考虑使用NOSQL数据库存储。 也许使用acts_as_tree。 您不能将其标准化为: 上级:id 子代:id,parent_id 孙子:id,child_id     
您确定性能有问题吗?如果仅是预期,则可能正在进行过早的优化。 如果您能够创建如此多的列作为子代数,那么我几乎可以肯定,您要避免的数据库设计不是问题。只要确保数据库具有正确的索引即可。 一个正在运行的(并包含测试的)应用程序是考虑性能的一个很好的起点。您可能会发现使用最简单的方法可以接受性能。     

要回复问题请先登录注册