Как связать несколько таблиц в базе данных sqlite? - PullRequest
0 голосов
/ 09 ноября 2019

Я работаю в Android Studio и я новичок в SQLite. Я не могу понять, как связать несколько таблиц в sqlite.

Моя проблема:
У меня есть 3 таблицы, скажем

         table_users(name, Id), 
         table_courses(title, code), 
         table_students(name, id). 

Для каждого столбца table_users я хочу создать несколько столбцов table_courses. И для каждого столбца table_courses я хочу создать несколько столбцов table_students. И когда я нажимаю на название курса в своем приложении, я хочу видеть всех студентов по этому курсу. Как это сделать? (База данных и запрос)

1 Ответ

0 голосов
/ 09 ноября 2019

Я бы предложил 3 таблицы, но не 3, которые вы определили.

Таблицы учеников и пользователей просто дублируют друг друга, так что эти две могут стать 1 таблицей.

Таблица cousresотлично, как есть.

Третья таблица - это таблица, используемая для сопоставления / привязки / привязки студента к курсу и позволяющая устанавливать отношения типа «многие-многие». То есть у студента может быть много курсов, и у каждого курса может быть много студентов.

Таким образом, таблицы могут быть: -

table_users (идентификатор, имя, другие столбцы, если необходимо) table_courses (код,title) (если код уникален)* Первый запрос, список в соответствии с (ODRER BY) для именования связанных строк (таблица сопоставления используется только для того, чтобы значения не отображались, поскольку они будут бесполезны для конечного пользователя)

enter image description here

Во втором запросе используются некоторые агрегатные функции, которые объединяют значения в зависимости от того, как сгруппированы выбранные строки (GROUP BY) (разбитые на подмножества). Группировка ведется по курсу. Функция count возвращает количество строк в наборе, функции group_concat возвращает разделенный запятыми список всех значений указанного выражения (обычно столбца) в наборе.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...