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

0

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

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

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

пароли,

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

и инструменты.

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

  • 1
    Не добавляйте столбец, добавьте соединительную таблицу (например, student_music ), где вы связываете пользователей с файлами.
  • 0
    Вы можете добавить столбец битового / логического типа, чтобы предоставить доступ и установить для их значения значение true / false при разрешении.
Показать ещё 2 комментария
Теги:
file-access
user-permissions

1 ответ

0
Лучший ответ

То, что у вас здесь, - это отношения " многие ко многим" между учащимися и файлами. Как мы обычно решаем это в 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню