Внутрисистемные метки (теги)

O
На сайте с 29.05.2008
Offline
195
592

Здравствуйте.

Помогите разметить таблицу меток. Есть пару модулей в локальной системе менеджмента, именно, планирование (todo list), учет, ... Все модули связаны между собой через контексты (FOREIGN KEY) и должны быть дополнительно связаны через метки.

Проблема в следующем. Если в случае с контекстами, я мог сделать FOREIGN KEY на PRIMARY KEY id таблицы contexts для поля INT(10), то в случае с метками такое не проканает (нужна возможность задать больше чем 1 метку). Как максимально логически решить задачу? Чтобы все работало без сторонней помощи, например, PHP (сериализация строки тут же отпадает).

bay_ebook
На сайте с 28.05.2010
Offline
111
#1

Нужна связующая таблиц с двух столбцов id_tags и id_contexts куда пишем связи contexts с нужными метками. Потом джейним, выбираем и тд.

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
O
На сайте с 29.05.2008
Offline
195
#2

bay_ebook, а почему таблица tags не может как раз быть этой "связущей"?

bay_ebook
На сайте с 28.05.2010
Offline
111
#3
ortegas:
bay_ebook, а почему таблица tags не может как раз быть этой "связущей"?

ну насколько я понял вам нужна связь много-ко-многим или один-ко-многим - тут без связующей (третей) таблицы не обойтись. Как еще задать список связей? В случае с php и сериализацией - очень медленно работать будет. А тут ставим индексы и все летает.

O
На сайте с 29.05.2008
Offline
195
#4

bay_ebook, это тоже вариант. Я сейчас сделал связь многих (тегов) к одному. Но это дублирует теги. Даже не знаю что лучше. Дублировать теги или добавлять еще одну таблицу. Кто-то знает?

В случае с php и сериализацией - очень медленно работать будет. А тут ставим индексы и все летает.

Я знаю. В первом посте написано "без" сериализации.

bay_ebook
На сайте с 28.05.2010
Offline
111
#5
ortegas:
bay_ebook, это тоже вариант. Я сейчас сделал связь многих (тегов) к одному. Но это дублирует теги. Даже не знаю что лучше. Дублировать теги или добавлять еще одну таблицу. Кто-то знает?

Поверите моему опыту еще одна таблица с двумя полями обходится намного дешевле, чем дублирование записей.

O
На сайте с 29.05.2008
Offline
195
#6

bay_ebook, в плане производительности или в плане ресурсов? Если что, ОЗУ много.

bay_ebook
На сайте с 28.05.2010
Offline
111
#7
ortegas:
bay_ebook, в плане производительности или в плане ресурсов? Если что, ОЗУ много.

Скорость. Минус скорее будет то, что придется писать чуть сложнее запросы. А по производительности и ОЗУ будет в плюсе.

O
На сайте с 29.05.2008
Offline
195
#8

Может еще есть какая-то мысль? :)

IL
На сайте с 20.04.2007
Offline
435
#9
ortegas:
Может еще есть какая-то мысль?

Реализовать многие-ко-многим по-другому? Наверняка, можно.. но оптимальнее пока ничего не придумали.

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
O
На сайте с 29.05.2008
Offline
195
#10

ivan-lev, я как раз вашего ответа ждал. Спасибо, поверю на слово. :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий