Вот как это: У меня есть таблица под названием «books», а таблица называется «категориями». Каждая «Книга» относится к категории, поэтому в книге есть поле под названием «id категории». Но нужно ли создавать «categoryList» для хранения «id книги»? Я могу использовать оператор select, чтобы найти книги, принадлежащие к категориям, но лучше ли это хранить идентификатор книги из списка категорий? Спасибо.Нужно ли указывать отношения?
ответ
Фактически, было бы лучше использовать таблицу сопоставления, чтобы указать отношение категории/книги.
эту таблицу можно было бы назвать category_book и один столбец category_id & один столбец для book_id
В вашей previous question вы говорите, книга принадлежит только одной категории. Таким образом, вам не нужна таблица CategoryList. Это дополнительное обслуживание без дополнительной выгоды. Поддержка запросов по категориям - вот почему Природа дала нам индексы.
В реальной библиотеке книга иногда с трудом может быть на двух полках за один раз, но разные коллекции могут имеют свои собственные копии. В библиотеках каждая копия книги должна иметь свой собственный идентификатор и назначение. –
Если библиотека приобретает более одной копии книги, тогда база данных «должна» иметь несколько записей этой книги (одна запись для каждой физической книги) и соответствующим образом присваивать идентификатор категории. –
Если ОДНА книга может принадлежать к МНОГИМ категориям, а ОДНА категория может иметь МНОГИЕ книги, тогда вам нужно МНОГИЕ, чтобы СВЯЗАТЬСЯ, используя промежуточную таблицу (что-то вроде Books _JOIN_Categories
).
Books
ID | BookName
Categories
ID | CategoryName
Books_Join_Categories
BookID | CategoryID
Если каждая книга имеет только одну категорию, но каждая категория может иметь много книг, то текущая структура отношения (CategoryID
в таблице книги) должны делать только штрафом.
Books
ID | CategoryID | BookName
Categories
ID | CategoryName
Фактически, второй вариант, вероятно, лучше всего. От многих до многих отношений, вероятно, не очень хорошая идея в этой ситуации (если только книга не разрывается пополам, чтобы ее можно было положить на отдельные полки). Если для двух разных разделов категории требуется одна и та же книга, тогда каждая категория (раздел в библиотеке) получит их физическая копия книги. Значение двух книжных записей в базе данных, каждая из которых имеет отдельный код категории
- 1. Нужно ли указывать мощность отношения при создании таблицы?
- 2. Нужно ли явно указывать jbyteArray?
- 3. Нужно ли указывать каждое состояние цвета ссылки?
- 4. Нужно ли указывать клиента для connect-redis?
- 5. Нужно ли указывать виртуальные методы подклассов?
- 6. Нужно ли мне указывать параметр в C#?
- 7. JMeter - Нужно ли явно указывать встроенные ресурсы?
- 8. Универсальное приложение, нужно ли мне указывать отдельно?
- 9. Нужно ли указывать атрибуты при получении классов?
- 10. Нужно ли явно указывать стек в .NET?
- 11. Нужно ли указывать строки JSON (цифры)?
- 12. Нужно ли указывать добавление или прикрепление
- 13. Зачем нужно указывать «из файлов»?
- 14. Inheritance Core Data: Нужно ли указывать подкласс в моей xcdatamodel?
- 15. Нужно ли определять отношения в доступе Ms?
- 16. Нужно ли указывать замену команд при присваивании переменных в bash?
- 17. Нужно ли указывать тип данных SQL при использовании SqlCommand?
- 18. Нужно ли указывать все обратные вызовы на странице учетных данных?
- 19. Нужно ли мне указывать URL-адрес при использовании app.add_url_rule?
- 20. Нужно ли указывать начальный размер списков при программировании для Android?
- 21. C# Нужно ли указывать имя для экземпляра нового класса?
- 22. Нужно ли мне постоянно указывать информацию о канале в dsl?
- 23. Нужно ли указывать привязку oneway для contentBinding в CollectionView
- 24. Нужно ли указывать «использовать основные данные» при создании приложения?
- 25. Нужно ли мне указывать AddMemoryCache в ядре ASP.NET для кэша?
- 26. Нужно ли мне указывать атрибуты заголовка html-заголовка (подсказки)?
- 27. Нужно ли указывать тип содержимого для зашифрованной строки?
- 28. Нужно ли указывать тип = "отправить" на кнопки отправки?
- 29. Установка из определенной ветви в GitHub. Нужно ли указывать яйцо?
- 30. Нужно ли нам явно указывать непустое ограничение для первичного ключа?
Согласен. Таким образом, у вас может быть книга, принадлежащая ко многим категориям. – BenW
Но отношение многих к многим в этом случае - плохая идея. Как может одна книга сидеть на двух разных полках в библиотеке? Это, по сути, то, что вы делаете со многими отношениями. –
На самом деле, многие из многих отношений имеют еще одно преимущество в дизайне. он четко отделяет «то, что мои сущности» от «как я их использую». Книга - это книга, категория - категория, категория отношений/книга не имеет ничего общего с книгой – dweeves