Analýza datového modelu ke každému release-u projektu SongsAndVotes je na samostatné stránce:
Release #2 projektu SongsAndVotes řeší zabezpečení aplikace. Pracujeme tedy především s business objektem reprezentujícím uživatele. Pro uživatele vytvoříme i role. Každý uživatel může mít několik rolí.
V tomto release-u máme tedy následující business objekty:
U uživatelů a jejich rolí v aplikaci je to obvykle tak, že několik uživatelů může mít stejnou roli. Například máme 350 běžných uživatelů, 3 správce písniček a jednoho superuživatele, který má oprávnění administrovat úplně cokoliv v celém systému.
Pokud může mít jeden uživatel více rolí (např. superuživatel chce mít i možnost si v písničkách listovat a přehrávat si je), pak mezi business objektem User a business objektem Role je vlastně vztah M:N. Pro relace M:N (many-to-many) je vhodné si vytvořit ještě jeden pomocný business objekt (zde např. UserRole), který bude reprezentovat vazební tabulku mezi tabulkou uživatelů a tabulkou rolí.
Datový model (ER-diagram) s vyznačením vazeb mezi business objekty vypadá v tomto release-u takto:
Vztah mezi uživateli a rolemi po refaktorování kvůli vazbě M:N neboli many-to-many: