Imagine one book table. A book details, are at least 40 items (Like: Name, HeadAuhtor, SecondAuthor, ISBN, DateOfPublish & so many more stupid columns).
I wanna add 30 more columns to this table completely related to my job but not really related to book table (Like: LibraryId, VisitedTimes, DownloadedTimes, HaveFiveStars, HaveFourStars, HaveThreeStars, HaveTwoStars, HaveOneStar [to calculate books rank], SoldTimes, LeasedTimes & some more).
SO, in total we have 70 columns for at least 5 million Books. The second 30 columns will be filled eventually but:
Another important thing is that some libraries may fill All first 40 columns completely but some libraries with many books may fill just 10 of those 40 columns. so in this case we have at least 2 million rows with many NULL or 0 columns.
I want Speed & Performance. This question is very important to me. and I cant test these both way to check the speed and performance myself, so don't tell me go and check it yourself.
I just need one best solution that explains what should I do!
Is it okay if I make a book table with 70 columns? or what? Split 70 columns in 2 tables with 1 to 1 relation? save the first 40 columns as Json in one string field (will Json be fast to get?)?
Does it really matter one 70-column table OR two 40 and 30-column tables with 1:1 relation?