course_taken
は、M:N
の関係でstudent
とcourse
の間である必要があります。これは、リレーショナルデータベースにインラインデータではなく別のテーブルで実装されています。
簡単に言えば:
CREATE TABLE course (
id int NOT NULL PRIMARY KEY autoincrement,
course_code varchar NOT NULL
);
CREATE TABLE student (
id int NOT NULL PRIMARY KEY autoincrement,
full_name varchar NOT NULL
);
CREATE TABLE course_taken (
course_id int NOT NULL,
student_id int NOT NULL,
CONSTRAINT pk_course_taken
PRIMARY KEY (course_id, student_id),
CONSTRAINT fk_course_taken_course_id
FOREIGN KEY (course_id)
REFERENCES course (id)
ON DELETE CASCADE,
CONSTRAINT fk_course_taken_student_id
FOREIGN KEY (student_id)
REFERENCES student (id)
ON DELETE CASCADE
);
をあなたの質問に答えるために、はい、あなたはいくつかのテキストフィールドに、このようなデータをインラインで格納することができます。しかし、あなたは本当にすべきではありません。
これは、RDBMSを使用する方法ではありません。この経路をとっていて今では戸惑っている人々からの何千もの質問がここにあります – e4c5
あなたのデータを標準化してください。各CSVコンポーネントがそれ自身の行を占めるようにします。 –
なぜこれをやりたいですか?これは実用的ではなく、お勧めではありません...次に、たとえば、フィルタリングするか、インデックス化するか... – Zeina