2013-03-08 56 views
0

我是相当新的轨道 - 网络发展一般,我不知道如何实现以下Rails - 每个单一ID或一切的表都是单个表?

我的书大名单,每本书都有一个特定book_ID并为每book_ID,我有这本书的x个副本,每个副本都有他们独有的细节。

我在想的是我应该有一个主表,它具有该特定书的详细信息,并且从这个主表中,我将引用每个特定book_ID的表。

书 - “10,苹果的蜜蜂”, “20只滑稽蜜蜂” ......

10 - 书1,书2,第3册,.... #book x指的是book_id为10的书。

这听起来像是正确的方法吗?如果是这样,我如何在rails中完成这项工作?如何自动创建任意数量的使用book_ID作为表名的表?

+0

我认为你需要从轨道退后一步,看看基本的编程术语。 “多种不同的书”和“每本书的倍数”是什么意思 – 2013-03-08 00:12:38

+0

@AbePetrillo谨慎地阐述这一点?基本上我有一本书的清单,每本书有x个号码(它们有细微差别,我需要它的每个记录,例如特殊ID号码) – rlhh 2013-03-08 00:16:35

+0

看看我的答案,看看它是否有帮助您。 – 2013-03-08 00:22:16

回答

1

我在翻译book_id可以重命名为reference number。在一个非常基本的水平,我会做

使用脚手架创建一个类书(连同控制器和视图)

rails generate scaffold Book name:string title:string reference_no:integer

现在,您可以添加您的书籍,如第一一个,一本新书以“苹果蜂”一个标题和一个参考号码10

ID,然后在创建另一个名为复制独立的类,并且可以使用has_many关系到图书

class Copy 
    belongs_to :books 
end 

,并在您图书类:

class Book 
    has_many :copies 
end 

在了它在数据库方面,你将有两个表:书及复印件。

副本表中的每条记录对其所属的书都有一个reference

+0

我明白了这个想法,如果我的<100本书,它会工作得很好。如果我有1000本书,并且每本有500本,该怎么办?它可能需要很长时间才能检索book_id 1的所有500个副本(尤其是如果它们未插入到副本表中)。如果我要为book_id 1使用单个表格,则可以仅从该单个表格中返回所有内容。 – rlhh 2013-03-08 00:27:43

+0

听@abe他说的是真话:) - 但严重的是,你试图解决的实际问题是什么?如果你只是在玩耍,我强烈推荐本教程,它是免费的,并且是开始使用Rails和现代Web开发工作流程的好方法:http://ruby.railstutorial.org/ – 2013-03-08 02:56:44

+0

这不是@ abe的方法不起作用。它工作得很好(正如我在前面的评论中所述),但我只是试图以更有效的方式解决问题。用这样的查询来调用数据库一千次,在我看来会非常糟糕。 – rlhh 2013-03-08 03:28:20

相关问题