I am interested in using iCalendar and vCards with RoR. How are iCalendar and/or vCards stored in tables? Is the information in a vCard, for example, stored in a vCard table with one record per vCard vEvent or should the table structure be normalized with separate tables for name, address, telephone and etc? Or should the data structure be normalized using multiple tables? If they must be normalized tables, is there a recommended structure?
There are several ways to do it as you have mentioned. Each option has its tradeoffs. You have to consider the application requirements and use your judgement to come up with a good solution. If the address, telephone etc are being used in other screens as part of some other model, then you can reuse those tables. Are you using the vpim library for the vCard?
I want to use it as a method for users to import their information. I do want to be able to run queries on the data like time associated data like DTSTART and DTEND. I would tend to believe this would be too resource intensive if an entire iCalendar event was stored in one record. One would have to create objects for every iCalendar record before any data comparison could be made.