Хранения списка в ячейке базы данных

Есть таблица с книгами (ключ, названия книг, ФИО авторов, наименования издательств, год издания), так же есть таблица с тем какие книги берут и возвращают (ключ, ключ книги, операция, дата операции). Нужно найти самого популярного автора. Вот в чём проблема. У книги может быть не один автор, то есть в ячейку ФИО авторов нужно вписать двух. В итоге трудности в запросе к базе. Не первый раз сталкиваюсь с проблемой, что требуется в ячейку на ряду с обычными данными вставить список.

Это тестовой задание, но я хочу узнать именно как вставлять списки

введите сюда описание изображения

То как я реализовал на данный момент

введите сюда описание изображения


Ответы (1 шт):

Автор решения: S.H.

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

Первая таблица - сущность "Книги".

Вторая таблица - сущность "Авторы". В каждой строке таблицы "Авторы" хранится ОДИН автор.

Третья таблица - связи между "Книги" и "Авторы".

В каждой строке хранится только ID из первой и второй таблиц.

В результате у Вас есть полная информация о том, с какой книгой "связан" какой автор.

Чтобы из этих трех таблиц получить результирующий список - можно использовать то, что называется View.

При этом есть один сравнительно тонкий момент, связанный с вложенным запросом, который как раз покажет СПИСОК авторов в случае, если этих авторов больше одного.

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

→ Ссылка