Following an example from a book, I am trying to develop a
'software development collaboration tool'
The tool has 3 important interacting components.
1) User
2) Project
3) Features
The relationship mapping is as follows:
One user Many Projects
One Project Many Users
One Project Many features
One feature One project
One feature one user
One user many feature
Accordingly the database has 3 tables
1) User
2) Project
3) Features
However the database also conatins a table called project_user_assignment. I do not understand the reason for having this additional table.
My question
Are there any thumbrules that can be used to create tables from a given set of relational mapping ?
What are the guiding principles for deciding appropriate db tables given a set of relational mapping ?