Я преподаватель барабанной секции для местной средней школы, и я нахожусь в процессе создания веб-страницы для студентов, чтобы получить доступ к их музыке.
Я делаю список пользователей в таблице и должен добавлять разрешения для пользователей, чтобы они могли получать доступ к музыке (файлы PDF), которую я им назначаю. Первоначально я думал о том, может быть, использовать массив для имен файлов, но, увидев, насколько много противоречий в массивах SQL, я решил обратиться и посмотреть, есть ли лучшие рекомендации.
На данный момент у меня есть таблица со всеми столбцами пользователей, там есть электронные письма,
пароли,
имена и фамилии,
и инструменты.
Я хотел бы иметь возможность просто добавить еще одно поле для этого, которое контролирует, к каким файлам они имеют доступ.
То, что у вас здесь, - это отношения " многие ко многим" между учащимися и файлами. Как мы обычно решаем это в 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
.
student_music
), где вы связываете пользователей с файлами.