I am wondering what are the possibilities for storing this kind of data in an efficient way.
Lets say I have 100 kinds of different messages that I need to store. all messages has a common data like message Id, message name, sender, receiver, insert date etc. every kind of message has it's own unique columns that we wanna store and index (for quick queries).
We don't want to use 100 different tables, it will be impossible to work with. The best way That I could come up with is to use 2-3 tables: 1. for the common data. 2. for the extra unique data when every column has a generic name like: foreign key, column1, column2....column20. there will be index on every column + the foreign key(20 indexes for 20 columns). 3. optional, metadata table to describe the generic columns for every unique message.
UPDATE: lets say that I am a backbone for passing data, there are 100 different kinds of data(messages). I want to store every message that comes through me, but not as a bulk data because later I would like to query the data based on the unique columns of every different message type. Is there a better way out there that I don't know about? Thanks. BTW the database is oracle.
UPDATE 2:
Does NoSQL database can give me a better solution?