Sorry for the delay -- I forgot to subscribe to the thread and didn't realize I had responses until I checked manually.
I thought about STI, but it seems that I would have a very complex table. I did not realize, however, that I could include a bunch of has_one statements -- I assumed that since an event would have a particular subevent based on the event_type, that the has_one wouldn't work. Since it will (just have to check for nil and know which event_type I'm working with), I think your second opinion would work. Thanks! On Aug 19, 3:49 pm, Colin Law <clan...@googlemail.com> wrote: > On 19 August 2010 18:52, richardsugg <richards...@gmail.com> wrote: > > > > > > > > > > > I am implemented a simple project management application. Each > > project has various events, and each event can be a different type. > > Some event information is common, such as name, start date, close > > date, and comments. I have a projects table which has_many events. > > My plan is to have several sub-event tables, like event_get_access > > which will contain an event_id field to link it to table events as > > well as information specific to a "get access" event (remote access, > > username, passwords, etc). Another event type might be "upgrade" > > which stores information about the server to be upgraded, etc. > > > So I have: > > * a project which has_many events > > * events which belongs_to :project > > * sub-events which belong_to :event > > > How do the subevents relate to event? An event will never have more > > than one subevent, but it may not have any of a particular subevent. > > Have you looked at Single Table Inheritance, which would allow > multiple types of event all in one table (rather than have subevents > of different types)? > > Otherwise I think you could have > Event > has_one :sub_event_type_one > has_one :sub_event_type_two > and so on. > > Then > SubEventTypeOne > belongs_to :event > etc. > > It does not matter if a particular event does not have a particular > type of subevent, if you try to access event.sub_event_type_one and it > does not have one then you will get nil > > Colin -- 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-t...@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.