When implementing a normalized database structure for user permissions in PHP, what considerations should be made to handle changes in permissions without affecting existing users' access?

When implementing a normalized database structure for user permissions in PHP, one consideration to handle changes in permissions without affecting existing users' access is to create a separate table for user permissions and link it to the users table using a foreign key. This way, when permissions are updated, it only affects the permissions table and not the users themselves.

// Create a users table
CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL
);

// Create a permissions table
CREATE TABLE permissions (
    id INT PRIMARY KEY,
    user_id INT,
    permission VARCHAR(50) NOT NULL,
    FOREIGN KEY (user_id) REFERENCES users(id)
);