What are the advantages and disadvantages of using a rollenkonzept with a cross table between users and roles in PHP applications?

Issue: The rollenkonzept with a cross table between users and roles in PHP applications allows for a flexible and scalable way to manage user roles and permissions. However, it can also introduce complexity and potential performance issues due to the need to query multiple tables to determine a user's roles. PHP Code Snippet:

// Query to retrieve user roles using rollenkonzept with a cross table
$user_id = 1;
$query = "SELECT r.role_name
          FROM users_roles ur
          JOIN roles r ON ur.role_id = r.id
          WHERE ur.user_id = :user_id";

$stmt = $pdo->prepare($query);
$stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$stmt->execute();

$roles = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Display user roles
foreach ($roles as $role) {
    echo $role['role_name'] . "<br>";
}