На ERD-диаграмме часть схемы моей бд.
Вопросы:
Как в MySQL сделать составной первичный ключ, атрибуты которого подтягиваются из 2 таблиц(таблица reports).
Поправьте, если не прав: при такой связи, когда я удалю какую-то запись из таблицы accounts/lessons, все записи таблицы reports с удаленными значениями тех таблиц удаляться в след за ними? Если нет, скажите как это реализовать.
Тот же вопрос для, только для таблиц answers и questions.
Если какой-то отчет удаляется, хочу чтобы записи ответов к этому отчету тоже стирались.
Я думаю по структуре примерно понятно что я хочу. Есть некий набор видеоуроков с вопросами к каждому из них(разного кол-ва могут быть). И есть отчеты с ответами каждого пользователя к конкретному уроку. Вообще прокомментируйте структуру таблиц\связей. Правильно ли вообще спроектировал?
CREATE TABLE reports (
account_id INTEGER NOT NULL,
lesson_id INTEGER NOT NULL,
`datetime` TIMESTAMP NOT NULL,
checked BOOLEAN,
PRIMARY KEY (account_id, lesson_id),
CONSTRAINT fk_reports_account_id FOREIGN KEY (account_id)
REFERENCES accounts (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_reports_lesson_id FOREIGN KEY (lesson_id)
REFERENCES lessons (id) ON DELETE CASCADE ON UPDATE CASCADE,
)ENGINE=InnoDB
ON DELETE
ключа. Допустимые значения
CASCADE
— дочерняя запись удаляется при удалении родительскойSET NULL
— ссылке присваивается значение NULL
. Если у самого поля стоит атрибут NOT NULL
то при удалении родительской записи возникнет ошибкаRESTRICT
или NO ACTION
— удаление родительской записи невозможно, пока на нее есть ссылкиИ помните, в MySQL внешние ключи поддерживают только движки InnoDB
и NDB
версии 7.3 и выше. Остальные оператор FOREIGN KEY
проглотят, но создадут обычный индекс
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
У меня mySql 80, я создал базу данных через консоль на локальном компьютере, создал таблицу, пытаюсь записать данные из файла тоже через консоль...
Есть таблица в MYSQL c полями "id", "категория", "год", "картинка" и другие На сайте выводятся различные блоки: Например, блок "Другие посты"Делается...
Есть таблица с полям id, name и yearТам очень много записей у которых частенько совпадают года, как мне вывести из таблицы все года, но только по одному...
Примечание: Должно получиться что-то наподобие этого: пришла строка «Моя строка», а выйти в браузер должно: «о тоа»