Бит базы данных новичка здесь. У меня есть список таблиц это:Перестановки MySQL одного списка
author_id book_id(PK) book_title other_book_info
======================================================
1 1 Grass etc.
1 2 Fire etc.
2 3 Green etc.
2 4 Red etc.
я заинтересован в соответствии всех книг из Author1 со всеми книгами из Author2 с некоторой корреляцией называется book_similarity (вне рамок данного вопроса). Какой лучший способ практики создания таблицы всех перестановок, как это ?:
sim_id(PK) book_id1 book_id2 book_similarity
=====================================================
1 1 3 High
2 1 4 Low
3 2 3 Low
4 2 4 High
Книга подобия коммутативности (то есть. Соответствие 1 против 3 такое же, как 3 по сравнению с 1), поэтому я нужны только перестановки названий книг, а не комбинации.
Однако я подозреваю, что было бы лучше всего создать более длинный стол со всеми комбинациями, имеющими 16 строк, чтобы, если я ищу конкретную книгу (скажем, № 4), мне нужно только посмотреть book_id1, а не book_id1 и book_id2. Каков консенсус?
Спасибо - это действительно полезно. Я думаю, что в конечном итоге буду использовать 'WHERE b1.author_id! = B2.author_id'. Это дает мне перекрестные сравнения со всеми необходимыми мне книгами и полный столбец поиска (book_id2), в котором есть каждая запись книги. – HMcG