I am designing a new system which is more of a help system for core applications in banks or healthcare sector. Given the nature of the system this is not a  heavy transaction oriented system but more of read intensive.Now within this application I have multiple entities which are related to each other. For e.g. Assume the following entities in the system UserTrainingRegulationsNow each of these entities have M:N Relationship with each other. Assuming the usage of a standard RDBMS, the design may involve many relationship tables each containing the relationships one other entity (User_Training, User_Regulations, Training_Regulations). This design is limiting since I have more than 3 entities in the system and maintaining the relationship graph is difficult this way. The most frequently used operation is given an entity get me all the related entities . I need to design the database where this operation is relatively inexpensive. What are the different recommendations for modelling this kind of database.
How to design database having multiple interrelated entities
design;database design
For such scenarios, it helps a lot if you have a strict convention for using single attribute IDs as primary keys, all of the same type all over your database model.With this preparation, you could model an universal Relation table with attributes LinkedFromTable, LinkedFromID and LinkedToTable and LinkedToID. The LinkedFromTable  and LinkedToTable attributes must hold unique identifiers for the tables you refer to (maybe just the table names), and the LinkedFromID and LinkedToID take the primary key values of the referred data rows.The operation get me all the related entities will be inexpensive due to proper indexing of your ID columns.But beware: the drawback is that you loose referential integrity for these manually modeled relations completely - if you delete a data row, you have to check and update the Relation table manually. For a write-once-read-many system this may be fine, you have to decide for yourself.  