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
的分配。
我是当地一所高中的鼓手教练,我正在制作一个网页供学生访问他们的音乐。
我正在 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
的分配。