Я инструктор по барабанам в местной средней школе, и сейчас я делаю веб-страницу для студентов, чтобы они могли получить доступ к их музыке.
Я делаю список пользователей в таблице и нужно добавить разрешений к пользователи так что они могут только доступ к музыке (Файлы 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
,
Других решений пока нет …