2015-05-03 1 views
0

Я создаю веб-инструмент для анализа URL-адресов. Он работает с двумя таблицами. Один для URL-адресов и один для найденных слов и их разбор/количество вхождений. Вот упрощенный пример:Связать строку в одной таблице SQL с несколькими строками в другой таблице,

URLs 

url-id  url 
---------------------------------------------------- 
1   www.example.net/this-is-a-sentence 
2   www.example.org/this-is-another-sentence 


Words 

word-id word   category  occurences 
---------------------------------------------------- 
1  this   pronoun   2 
2  is   verb   2 
3  a   det    1 
4  sentence  noun   2 
5  another  det    1 

Я пытаюсь выяснить способ связать каждый URL в таблице URL для каждого из его слов в таблице слов. Таким образом, если пользователь решает удалить один из URL-адресов, все соответствующие количества ошибок могут быть уменьшены. Я совершенно не знаком с SQL, поэтому я не знаю, как он может хранить информацию в ячейках, но я хочу иметь какой-то динамически размерный список всех идентификаторов слов в URL-адресе.

url-id  url           words 
--------------------------------------------------------------------------- 
1   www.example.net/this-is-a-sentence   1,2,3,4 
2   www.example.org/this-is-another-sentence 1,2,3,5 

Я открыт для предложений о совершенно разных способах организации данных в SQL.

Примечание. Я не могу просто повторно анализировать URL-адреса при удалении, потому что для проверки синтаксического разбора есть возможность ввода пароля.

+1

Вам нужно будет использовать другую таблицу и вставить строки с url_id и word_id –

+0

Добавьте 'url_id' в свою таблицу' Words' как внешний ключ? – Samurai

+0

@ChipDean - Это своего рода «связующий стол»? – EmmetOT

ответ

1

Вам нужен стол мостовую, как это:

url-id  word-id  (represents, not part of table) 
------------------- 
1   1   url-id 1 has word-id 1 (this) 
1   2   url-id 1 has word-id 2 (is)  
1   3   url-id 1 has word-id 3 (a) 
1   4   url-id 1 has word-id 4 (sentence) 
2   1   url-id 2 has word-id 1 (this) 
2   2   url-id 2 has word-id 2 (is) 
2   5   url-id 2 has word-id 5 (another) 
2   4   url-id 2 has word-id 4 (sentence) 

Это называется отношения многие ко многим. URL-адрес может содержать много слов, а Word может принадлежать многим URL-адресам. Here - хорошая статья, описывающая разные отношения в SQL.

 Смежные вопросы

  • Нет связанных вопросов^_^