#database #database-design
#База данных #database-design
Вопрос:
Я создаю веб-сайт, для которого требуется база данных. Я хочу, чтобы пользователи могли
- Войдите на веб-сайт (поэтому необходимо сохранить данные пользователя)
- Поиск ресурсов
- Поиск электронных книг
- Добавление ресурсов / электронных книг в личную библиотеку
Я создал четыре таблицы User, Resources, Ebooks, Library
Таблица пользователя состоит из следующих полей
User_ID
User_first_name
User_Last_name
Username
User_password (encrypted)
User_Email
Ресурсы состоят из следующих полей
Resource_ID
Resource_Name
Resource_Category
Электронные книги состоят из следующих полей
Ebook_ID
Ebook_name
Ebook_category
Библиотека состоит из следующих полей
Library_ID
User_ID
Я борюсь с отношениями и FKS. Я создал отношения между пользователем и библиотекой, поскольку у 1 пользователя будет 1 библиотека, однако я хочу, чтобы пользователи могли добавлять столько книг / ресурсов, сколько они хотят, в свою личную библиотеку, так какими будут отношения между пользователем и ресурсами / электронной книгой?
Это может быть действительно простым решением, но я новичок в базах данных, поэтому не судите!
Заранее спасибо.
Комментарии:
1. Время прочитать опубликованный академический учебник по информационному моделированию и дизайну баз данных. (Руководства по языкам и инструментам для записи и использования проектов не являются учебниками по информационному моделированию и проектированию баз данных.) Задайте вопрос о том, что вы застряли после этого. PS Нет ни одного «отношения» между / по каким-либо конкретным вещам. Таблица представляет отношение (корабль) / ассоциации между вещами. Вам нужно рассказать нам, какие из них вас интересуют. Например, «у пользователя [user_Id] есть ресурс [resource_id] в их библиотеке»? PS Может быть, вы застряли в повторном моделировании книг как (под) типов ресурсов?
Ответ №1:
Из вопроса я понимаю / предполагаю, что ресурс / электронная книга может находиться во многих библиотеках, а библиотека может содержать много ресурсов / электронных книг (многие ко многим)
Следовательно, мы можем создать таблицу сопоставления следующим образом:
ResourceLibraryMap
----------------
resource_id
library_id
EbookLibraryMap
-------------
ebook_id
library_id
Таким образом, мы создали связь many_to_many между библиотечными ресурсами и библиотечными электронными книгами.
Следовательно, у пользователя будет много ресурсов / электронных книг через ResourceLibraryMap / EbookLibraryMap соответственно
Комментарии:
1. Да, ваше понимание правильное, я считаю, что это решит мою проблему. Большое вам спасибо.