Ruby on Rails Tuesday, September 17, 2019

Agreed - relational tables are the way to go here. Only one suggestion I'd make is around semantics, I'd rename auctions to auction_items, and then the join table would need to be auction_item_properties.
I may be misunderstanding, but my thinking is an auction to be the top-level bucket which has properties like a start time, end time, location, membership, lots/items, etc - so it would have many items. 
If each auction is item-specific however, then ignore this comment :)

On Monday, September 16, 2019 at 1:31:29 PM UTC-7, Ariel Juodziukynas wrote:
Personally, I would do this:

auctions table
(with the basic shared information of all auctions and an "auction type"))

properties table
property_name (like network, carrier, publisher, etc)
auction_type (like cellphone, book, etc)

auctions_properties
auction_id
property_id
value

That way you can have any number of auction types with any number of specific properties with just 3 tables.

Note that the "value" column would be some string variation (VARCHAR, CHAR, TEXT, etc) depending on your needs, maybe you want to redesign it a little if you want to store different types. Like if you want to store an integer (and retrieve an integer) you'll have to save the original type and reparse it (you could use serialization but that requires a TEXT column and maybe you can't use that many space)

El lun., 16 sept. 2019 a las 17:19, fugee ohu (<fuge...@gmail.com>) escribió:
I was looking at some auction projects that use a single listings table for all auctions but I know on auction sites the form will be different for different types of items like if you're selling a cell phone there'll be a form field for network, carrier, whatever and if you're selling a book there'll be form fields for publisher, year of publication,  so they would have separate tables I assume for books, cell phones, etc? Then how would they treat them all as one?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/512f8b73-e3a4-4e74-95e7-4281e7b54821%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/20a15754-d659-409d-b32a-0f7a32196143%40googlegroups.com.

No comments:

Post a Comment