I’m designing a schema for a learner management system.
I currently have LearnerDetails table which stores below categories of information.
– login user account details
– contact details and home address
– learner’s residency related information including nationality info, current visa details to remain in UK etc
– learner’s current state benefit related information
– details about learner’s current employment status
The problem that I have is, when all these information are represented in a single table, number of columns exceed 70 columns.
One thing that I can to do is, I can segregate information in to different tables representing the categories mentioned above and associate these tables to their parent table LearnerDetails as 1:1 relationships.
I’d like to know whether this is a recommended approach or not.
In my opinion 1:1 relationships would represent a database what is over normalized. But if I didn’t do this, it would result in having a huge horizontal table as my LearnerDetails table.
Highly appreciate if you could let me know your opinions/suggestions.
There is nothing inherently wrong with many columns in a table, as long you have 5NF, or at least 3NF.
But, there are quite a few examples where vertical partitioning (1::1) makes sense — take a look at a similar question.