A data model is the database concept representing the application entities, entity attributes, and entity relations persisted in the database schema.
The entities (components) specified for the application are:
· Educational Data Model (EDM) entities:
¡ Department
This entity represents a department. The attributes are ID, name, manager, version, list of employees.
¡ Employee
This entity manages the records for the employee instances. The attributes for this entity are employeeId, firstName, lastName, email, skills, emoloyeeDepartment, deptMnager, and so on.
¡ Project
This entity is responsible for the records of the project instances. Its attributes are projectId, title, description, startDate, endDate, employess, leader, skills, and so on.
¡ Skill
This entity manages the database entries for the skill instances. The attributes are skill Id, description, language, version.
● Entities related to the application features:
¡ Navigation
This entity keeps the navigation sets defined for user groups. The available attributes are navigation key, label, href, position, and so on.
¡ UserGroup
This entity organizes the employees in user groups by connecting a single user to the set of navigation provided for its kind. The attributes are groupKey, groupName, version, and navigations.
¡ ProjectChanges
This entity keeps a record of the changes performed on the projects. For example, change of the corresponding dates, change of the list of employees, and so on. The entity attributes are id, project id, title, description, startDate, endDate, employee leader, version, change date, and so on.
Figure: Application data model describing entities, relations, and attributes
For the model presented in application, we have the following relations between the entities:
○ Department – Employee
Bidirectional one-to-many relationship for regular employees, and bidirectional one-to-one relationship for employees designated as department managers.
¡ Project – Employees
Bidirectional many-to-many relationship for regular employees, and bidirectional one-to-one relationship for employees designated as project leads.
¡ Project – Skill
Unidirectional many-to-many relationship.
¡ Employee – Skill
Unidirectional many-to-many relationship.
¡ Employees – UserGroup
Unidirectional many-to-many relationship.
¡ UserGroup – Navigation
Unidirectional many-to-many relationship.
¡ Project-Projectchanges
Unidirectional one-to-many relationship.