В настоящее время я пишу приложение на C #, которое использует базу данных SQLite для хранения информации, введенной пользователем.Приложение представляет собой систему управления для пользователей, которых в приложении называют «Студенты».Это самая важная таблица в моей базе данных, и каждая другая таблица связана с этой таблицей.То, что я хочу сделать, - это когда ученика удаляют - его покидают институт / выгнают и т. Д. - это удалить свои данные из всех других таблиц, чтобы данных больше не было, поскольку они не нужны.Пример некоторых операторов Create table, которые я написал:
CREATE TABLE student(studentID int(5) PRIMARY KEY NOT NULL, name string(16),...,DOB string(8) );
CREATE TABLE emergencyContact(emergencyID int(5) PRIMARY KEY NOT NULL, name string(16),..., contactNumber int(16));
CREATE TABLE emergencyContactOf(studentID int(5) FOREIGN KEY REFERENCES student('studentID'), emergencyID int(5) FOREIGN KEY REFERENCES emergencyContact('emergencyID');
Я прочитал об этом, и я понимаю, что данные будут удалены в таблице EmergencyContactOf, если я включу 'ON DELETE CASCADE'заявление в качестве ключа StudentID больше не будет присутствовать в родительской таблице.
Однако, насколько я понимаю, данные в таблице EmergencyContact, предназначенные для этого конкретного учащегося, не будут удалены, поскольку нет ссылки на StudentID.
Мой вопрос: есть ли способ удалить данные из этой таблицы, которые также относятся к этому студенту?Например, если я должен был включить в таблицу EmergencyContact столбец, который будет ссылаться на StudentID как внешний ключ, а затем удалить эту строку, если StudentID когда-либо удалялся из родительской таблицы?Является ли это хорошим решением этой конкретной проблемы?
Все остальные таблицы, которые у меня есть, также спроектированы таким образом, где данные находятся в разных таблицах, а затем связаны с таблицей ученика с таблицами отношений, так что это такжеприменить ко всем другим таблицам, которые у меня есть.
Спасибо.