[Rails] Table naming question...

2 views
Skip to first unread message

Matt Slay

unread,
May 10, 2010, 4:54:55 PM5/10/10
to rubyonra...@googlegroups.com
Conisdering the naming conventions of ActiveRecord tables...

I have a parent table called "Jobs" and a child table to it called
"JobItems" which holds the line items on any give "Job" that we process.

Now I'm dealing with the Invoice table, which is a Parent-type of table
("Invoices"), and I have an "InvoiceItems" child that is related to it.

However, in some ways, each Invoice is also a child record to a Job.
(Some Jobs build up multiple Invoices if we do progress billing of
partial shipments).

So, one could argue that the "Invoices" table should be named
"JobInvoices", and the child invoice items would go in a table name
"JobInvoiceItems".

So...

Invoices and InvoiceItems

or

JobInvoices and JobInvoiceItems

Which way is the accepted way?
--
Posted via http://www.ruby-forum.com/.

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

Colin Law

unread,
May 10, 2010, 5:04:03 PM5/10/10
to rubyonra...@googlegroups.com
On 10 May 2010 21:54, Matt Slay <li...@ruby-forum.com> wrote:
> Conisdering the naming conventions of ActiveRecord tables...
>
> I have a parent table called "Jobs" and a child table to it called
> "JobItems" which holds the line items on any give "Job" that we process.
>
> Now I'm dealing with the Invoice table, which is a Parent-type of table
> ("Invoices"), and I have an "InvoiceItems" child that is related to it.
>
> However, in some ways, each Invoice is also a child record to a Job.
> (Some Jobs build up multiple Invoices if we do progress billing of
> partial shipments).
>
> So, one could argue that the "Invoices" table should be named
> "JobInvoices", and the child invoice items would go in a table name
> "JobInvoiceItems".

I would consider the language that the client (or yourself) uses when
talking about the objects in the tables. For example if you talk
about job invoices then that should be the name of the table. If you
just call them invoices then that should be it. The objects in the
system should map to real world objects in as intuitive a way as
possible. That way you may hope to minimise confusion.

Colin
Reply all
Reply to author
Forward
0 new messages