Ja bym to zrobił w relacji wiele do wielu.
Tabela User:
Tabela User Details:
Tabela Rank:
rankId |
rankName |
1 |
Operator |
Nazwy tabel i kolumn wysokiej jakości nie są, radzę nie kopiować z przykładu.
Wyciągasz dane i sprawdzasz jaką rangą dany użytkownik dysponuje i udostępniasz mu odpowiednie funkcje.
Przykład:
# Widok Chatu
#
# Zakładając, że zmienna user zawiera potrzebne dane
if ($user['rank']['rankId'] === 1) {
# Jeżeli sprawdzać po nazwie to:
# if ($user['rank']['rankName'] == 'Operator' ) {
echo '<button type="submit">Usuń post!</button>';
}
Ogólnie lepiej to wygląda z systemem szablonów jak twig:
{% if user.rank.rankId === 1 %}
# Jeżeli sprawdzać po nazwie to:
# {% if user.rank.rankName === 'Operator' %}
<button type="submit">Usuń Post</button>
{% endif %}
Albo od razu stworzyć blok dla narzędzi admina i całość podpinać.
Kod nie był testowany. Jest to tylko przykład, w rzeczywistości kod może się całkiem różnić od podanego tutaj. :)
Przyda się:
http://php.net/manual/en/book.pdo.php
http://www.sql-tutorial.net/sql-join.asp
Choć, ja bym zastosował do gry orm z wygody jak doctrince.