MySQL - Как мне предоставить пользователям в SQL доступ к разным файлам - PullRequest
0 голосов
/ 28 мая 2018

Я инструктор по барабанам в местной средней школе, и сейчас я делаю веб-страницу, чтобы студенты могли получить доступ к своей музыке.

Я создаю список пользователей в таблице и мне нужно добавить разрешения для пользователей , чтобы они могли только доступмузыка (файлы PDF), которую я им назначаю.Первоначально я думал о том, чтобы, возможно, использовать массив для имен файлов, но после того, как я увидел, насколько много противоречий в массивах в SQL, я решил обратиться и посмотреть, есть ли лучшие рекомендации.

На данный момент у меня есть таблица, в которой все столбцы пользователей содержат электронные письма,

пароли,

имена / фамилии,

и инструментов.

Я хотел бы иметь возможность просто добавить другое поле к этому, которое контролирует то, чтофайлы, к которым у них есть доступ.

1 Ответ

0 голосов
/ 28 мая 2018

Здесь у вас есть отношение «многие ко многим» между студентами и файлами.В MySql мы обычно решаем это путем создания сводной таблицы .Вот небольшой пример:

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 означает, что пользователь с идентификатором user_id имеет доступ к назначению с идентификатором assignment_id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...