2010-02-15 5 views
0

У меня есть одна таблица с ПОЛЬЗОВАТЕЛЯМИ и другая таблица с URL RSS FEED. Оба типа InnoDB.Mysql Cross Table Referencing - Правильно ли это?

Каждый пользователь может подписаться на любое количество каналов.

Я пытаюсь выяснить, как лучше вести учет того, на какие подписчики подписчиков.

Один из способов - иметь столбец feed_ids varchar в таблице пользователей и разделять каждый. Есть ли лучший способ или это нормально?

USERS TABLE 
+---+----------+ 
|id | feed_ids | 
+---+----------+ 
|1 | 1,2,3 | 
+---+----------+ 
|2 | 2,3  | 
+---+----------+ 
|3 | 1,2  | 
+---+----------+ 

ответ

3

Лучше всего создать новую запись в таблице для каждого отношения. Итак:.

USERS-FEEDS TABLE 
+---+----------+---------+ 
|id | user_id |feed_id | 
+---+----------+---------+ 
|1 | 1  |1  | 
+---+----------+---------+ 
|2 | 1  |2  | 
+---+----------+---------+ 
|3 | 1  |3  | 
+---+----------+---------+ 
|4 | 2  |2  | 
+---+----------+---------+ 
|5 | 2  |3  | 
+---+----------+---------+ 
|6 | 3  |1  | 
+---+----------+---------+ 
|7 | 3  |2  | 
+---+----------+---------+ 

Вы можете также определить связь между этой таблицей и пользователями и каналами таблицы, чтобы обеспечить integrety (т.е. столбец пользователя может содержать только значение, которые являются идентификаторами в пользовательском столе, и будет обновлять, удалять или устанавливать значение null, если вы разрешаете это, когда строка пользователя обновляется или удаляется).

+0

О, да, вы только что напомнили мне, но я использовал этот метод раньше. Вот что происходит, когда вы берете длинные перерывы от кодирования. ol 'использовать его или потерять вещь: P – Chad

+0

забыл сказать спасибо! -_- – Chad

+0

Нет проблем, удачи! Если у вас появятся больше проблем, мы услышим от вас! –

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