MySQL - 如何授予 SQL 中的用户访问不同文件的权限

MySQL - How do I give users in SQL access to different files

我是当地一所高中的鼓手教练,我正在制作一个网页供学生访问他们的音乐。

我正在 table 中创建一个 用户列表 并且需要将 权限 添加到 用户,以便他们只能访问我分配给他们的音乐(PDF 文件)。最初,我考虑过可能使用数组作为文件名,但在看到 SQL 中关于数组的争议如此之多后,我决定伸出援手,看看是否有更好的建议。

截至目前,我有一个 table 与所有用户的 有专栏 电子邮件,

密码,

first/last 姓名,

仪器。

我希望能够为此添加另一个字段来控制他们可以访问哪些文件。

你这里有一个 many-to-many relationship between students and files. The way we generally solve this in MySql is by creating a pivot table。这是一个小例子:

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    email VARCHAR(100) NOT NULL
);

CREATE TABLE assignments (
    id INTEGER PRIMARY KEY,
    filepath VARCHAR(100) NOT NULL
);

CREATE TABLE user_assignment (
    id INTEGER PRIMARY KEY,
    user_id INTEGER NOT NULL,
    assignment_id INTEGER NOT NULL,
    FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE RESTRICT ON UPDATE CASCADE,
    FOREIGN KEY (assignment_id) REFERENCES assignments (id) ON DELETE RESTRICT ON UPDATE CASCADE,
);

因此,user_assignment 数据透视表 table 中的每个条目表示 ID 为 user_id 的用户可以访问 ID 为 assignment_id 的分配。