An unknown number of elements

The only major concern with is how you're going to efficiently perform queries for shows occurring on particular dates. If you stored the dates as a comma-separated list of strings, you could make these kinds of queries a bit more efficient:

class Show   def for_date(date)     # assuming trailing commas...     find(:all, :conditions => ["date LIKE '%?,%'", date.strftime("%Y/ %m/%d")])   end end

You're sorta screwed if you want to find shows within a date range though. Also, you have to load and re-save the entire column just to add or remove a date -- this is probably ok if there are less than a hundred dates...

Using a many-to-many isn't THAT hard. You get a lot of power with it -- and the amount of glue code you need to write should be minimal. In this case it seems to be the cleaner solution...