Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpRlInr 221 of 299 menu
◀ ▶

Связывание таблиц в Kotlin

Пусть есть таблица с именами юзеров и городами, в которых они живут:

users
id name city
1 user1 city1
2 user2 city1
3 user3 city2
4 user4 city1
5 user5 city3
6 user6 city2

Недостатком этой таблицы является то, что один и тот же город повторяется несколько раз для разных юзеров. Это приводит к некоторым проблемам.

Во-первых, постоянное повторение приводит к тому, что база данных начинает занимать намного больше места.

Во-вторых, достаточно неудобно выполнять операции с городами. К примеру, нужно вывести на экран список всех городов. Так просто это сделать не получится. Придется получить всех юзеров вместе с их городами, затем удалить дубли из полученных городов и только тогда получится этот список.

А теперь представим, что в базе 10000 юзеров из 10 городов - ради этих 10 городов придется достать всю таблицу из огромного количества строк - получится очень медленная операция с бессмысленной тратой ресурсов.

Решение проблемы

Нужно разбить таблицу на две: в одной будут храниться города, а во второй - юзеры. При этом в таблице с юзерами будет колонка city_id, которая будет ссылаться на город юзера.

Итак, давайте сделаем две таблицы. Таблица с городами:

cities
id name
1 city1
2 city2
3 city3

Таблица с юзерами:

users
id name city_id
1 user1 1
2 user2 1
3 user3 2
4 user4 1
5 user5 3
6 user6 2

Пусть нужно хранить товары (название, цена, количество) и категории этих товаров. Распишите структуру хранения.

Пусть нужно хранить реки и моря, в которые впадают эти реки. Распишите структуру хранения.

Пусть нужно хранить города и страны, в которых они находятся. Распишите структуру хранения.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить