|  | 
| 
Как средствами одного только SQL решить задачу пересечения множеств? | |||
|---|---|---|---|
| #18+ Подскажите пожалуйста, можно ли средствами одного только SQL (MySQL или любой другой опенсорсовый) решить задачу пересечения множеств подобного рода:  - У пользователя веб-приложения есть профайл, в котором есть поле, куда он может ввести произвольные теги через запятую, - Есть конопка, при нажатии на которую, пользователь получает список других пользователей, отранжированный по числу точных совпадений в этом списке (например, у него список [вишня, банан, яблоко, курица, весло], а у кого-то [танк, газета, яблоко, весло, шило] - 2 совпадения - яблоко и шило). 1. В каком формате лучше хранить это в базе? Как именно? 2. Как потом одним запросом получить этот ранжированный список? 3. В общем, как это сделать лучше и правильнее всего? Знающие люди предложили решить средствами NoSQL (Redis) но может как-то можно сделать обычными средствами? Спасибо. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 02.09.2019, 16:04 |  | ||
| 
Как средствами одного только SQL решить задачу пересечения множеств? | |||
|---|---|---|---|
| #18+ Роми Коэн1. В каком формате лучше хранить это в базе? Как именно? 2. Как потом одним запросом получить этот ранжированный список? 3. В общем, как это сделать лучше и правильнее всего? EAV. Потом простенький запрос с JOIN + GROUP BY + ORDER BY COUNT(*) DESC. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 02.09.2019, 16:18 |  | ||
| 
Как средствами одного только SQL решить задачу пересечения множеств? | |||
|---|---|---|---|
| #18+ Dimitry Sibiryakov, я правильно понял, что таблица tags будет выглядеть примерно так: user_id tag 1 apple 1 dog 1 tree 2 dog 2 tree 2 sun 3 tree 3 sea 3 moon да? а как будет выглядеть запрос к такой таблице для юзера с id 1? например таблица users (просто для общей картины) id name 1 John 2 Mike 3 Vasia ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 03.09.2019, 07:14 |  | ||
| 
Как средствами одного только SQL решить задачу пересечения множеств? | |||
|---|---|---|---|
| #18+ Роми Коэна как будет выглядеть запрос к такой таблице для юзера с id 1? Именно так как я сказал: Код: sql 1. 2. 3. 4. Posted via ActualForum NNTP Server 1.5 ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 03.09.2019, 12:21 |  | ||
|  | 

| start [/forum/topic.php?fid=32&fpage=5&tid=1539913]: | 0ms | 
| get settings: | 10ms | 
| get forum list: | 13ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 34ms | 
| get topic data: | 11ms | 
| get forum data: | 3ms | 
| get page messages: | 43ms | 
| get tp. blocked users: | 1ms | 
| others: | 10ms | 
| total: | 133ms | 

| 0 / 0 | 
