Hi Sharagoz,

> Does this make sense?

Absolutely!  It's crystal clear.

Many thanks,
Richard

On May 12, 3:58 am, Sharagoz <[email protected]> wrote:
> Expense would belong to Vendor, not have one Vendor, unless you are
> planning to put the foreign key in the vendors table, which sounds
> very strange, as that would require a new vendor to be created for
> every expense.
> If you are fist selecting a vendor, and then selecting an account
> belonging to that vendor when you create an expense, then it makes
> sense to hook expense up to account, not vendor.
>
> class Vendor
>   has_many :accounts
>
> class Account
>   belongs_to :vendor
>   has_many :expenses
>
> class Expense
>   belongs_to :account
>
> Then when you have created an expense you can get its account through
> @expense.account and its vendor through @expense.account.vendor.
> Does this make sense?
>
> On May 12, 3:22 am, RichardOnRails
>
>
>
> <[email protected]> wrote:
> > Thinking about it some more,  I now think I should have separate
> > Expense, Vendor and Account tables with the following relationships:
>
> > class Expense
> >         has_one Vendor
>
> > class Vendor
> >         has_many Accounts
> >         belongs_to Expense
>
> > class Account
> >         belongs_to Vendor
>
> > Then an Expense record can get Accounts through Vendor. .. or
> > something like that.
>
> > Am I getting warmer?
>
> > Thanks in Advance,
> > Richard
>
> > On May 11, 8:57 pm, RichardOnRails
>
> > <[email protected]> wrote:
> > > Hi,
>
> > > I have three tables: Expenses, Vendors and Vendor _Accounts
>
> > > It should operate as follows:
> > > When a new Expense record is created,
> > > A vendor is selected from a drop-down of Vendors and,
> > > An account is selected from a drop-down of Vendor_Accounts where
> > > Vendor_Accounts#vender == selected vendor
>
> > > So I should have a structure something like:
> > > class Expense
> > >         has_one Vendor
>
> > > class Vendor
> > >         has_many Vendor_Accounts where Vendor#id == Vendor_Accounts#vendor
> > >         belongs_to Expense
>
> > > class Vendor_Account
> > >         belongs_to Vendor
>
> > > I don’t think I should have Expense, Vendor and Account tables because
> > > the accounts defined by each vendor bear no relationship with the
> > > other vendors’ account beyond the mere concept of “account”.
>
> > > Does this make sense, and if so,  how precisely should I describe
> > > these relationships? Am I close with the above idea?
>
> > > BTW, I'm running Rails 2.3.5, Ruby 1.8.6, WinXP-Pro/SP3, Firefox
> > > 3.6.2, Firebug 1.5.3,
> > > MySQL 5.0.37-community-nt, Mongrel, Apache HTTP Server 2.2.15
>
> > > Thanks in Advance,
> > > Richard
>
> > > --
> > > 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 [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/rubyonrails-talk?hl=en.
>
> > --
> > 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 [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/rubyonrails-talk?hl=en.
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to