I am trying to understand if is better to use 1 big table or many smaller ones. I have ready over the web that it depends on each case so i would like any recommendations based on my example below:
Lets assume i would like to create a database which will hold all characteristics of assets. Assets can be split to different asset class (i.e equity, bonds, cash etc). All asset classes have similar characteristics (i.e ID Code, Issuer Name) and some assets have specific characteristics (Bonds has a Maturity Date while equities don't). So my question is shall i use a big table that will leave NULL when the asset is not applicable (as show below)
or shall i use several tables as and join them every time i need to produce a report? (as shown below)
What are the pros and cons on each case? for example if i have 1m different ID Codes would it need addition space for the 1 table option while the query performance will drop significantly with the multi table option?
What if the unique characteristics for each type is 50 and there are 10 different asset classes. Shall i create a 50 x 10 = 500 column table (with most of the column for each line to be NULL) or shall i have 10 different table and use LEFT JOIN when i would like to create a report?