On Thursday, September 26, 2019 at 4:32:10 PM UTC-4, Ariel Juodziukynas 
wrote:
>
> The easiest but too big is a text columns so you can use 
> activerecord' serialization of attributes to save anything you want on a 
> text field and activerecord will handle casting.
>
> You could use a string column if you know your values won't be too big 
> (VARCHAR(255)) and you know what types you want to accept and handle 
> serialization yourself like:
>
>     def value=(something)
>       val = if value.is_a?(Integer)
>               "integer:#{something}"
>             elsif value.is_a?(String)
>               "string:#{something}"
>             elsif value.is_a?(Date)
>               "date:#{something}
>             # etc...
>       write_attribute(:value, val)
>     end
>
>     def value
>       type, val = read_attribute(:value).split(':')
>       case type
>       when "integer" then val.to_i
>       when "string" then val
>       when "date" then Date.parse(val)
>       etc...
>     end
>            
>
> El jue., 26 sept. 2019 a las 17:17, fugee ohu (<fuge...@gmail.com 
> <javascript:>>) escribió:
>
>>
>>
>> On Monday, September 16, 2019 at 4:31:29 PM UTC-4, 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
>>>>  
>>>> <https://groups.google.com/d/msgid/rubyonrails-talk/512f8b73-e3a4-4e74-95e7-4281e7b54821%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>> What data type do you suggest for value column 
>>
>> -- 
>> 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 <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/rubyonrails-talk/e74aaf6b-b9e1-4847-a6d3-3120829fa3bc%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/rubyonrails-talk/e74aaf6b-b9e1-4847-a6d3-3120829fa3bc%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
 If I'm using a string column then whatever value is put in it is a string, 
so I don't understand all these "'if value.is_a?" conditions

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/93726aa7-2667-4f3b-b27c-6d19d5e5f368%40googlegroups.com.

Reply via email to