Performance. Lets, say you are listing a set of folders on a page and you want to display the number of files in each folder. So you would use something like
<%= folder.files.size() %> With the classic foreign key relation then for every folder you will get an SQL query like "select count(files.id) from files where files.folder_id = '#{folder.id}'" to determine the result of the size () method. This is no problem for 5 folders and a file table of a couple of thousand records but if you are displaying 30 folders and the file table contains 200 million records then its a performance bottleneck. You could add an index on the files.folder_id to the files table to speed up each search but it will still take a while. If the 'folder.files' element was an array of ids then there would be no subsequent database access to determine the size() value. regards damian On Mar 29, 12:46 am, Matt Jones <al2o...@gmail.com> wrote: > You could possibly do this, but why would you want to? > > You'll probably want to look into the ActiveRecord docs related to > virtual attributes, and possibly serialized fields. > > But again, WHY? The foreign key -> parent relation is practically as > old as databases, and going against that current is only going to land > you on TheDailyWTF... > > --Matt Jones > > On Mar 27, 5:33 pm, "Paul A." <rails-mailing-l...@andreas-s.net> > wrote: > > > Hi, > > > I would like to make a relation using a different way then the classic > > belongs_to/has_many association. Instead of this, I would like to save > > the foreign key in the parent class as a list of ids. > > > For instance, we can consider 2 models: File and Folder. > > Basically, we could add in File model this method: folder_id. > > > But can we do the same with a list of file's ids stored in this folder's > > method: file_ids? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---