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...