Нужны советы по поводу тегов - PullRequest
0 голосов
/ 18 ноября 2010

Мне просто нужен совет по использованию тегов. Я сейчас работаю над сайтом, и пользователи могут публиковать видео, изображения, аудио и информацию о себе.

Я никогда раньше не работал с тегами на обычном веб-сайте (работал с ними на WordPress, YouTube и т. Д.), Поэтому мне нужно несколько советов, чтобы начать проектирование моей базы данных.

Как обычно работают с тегами, когда у вас есть несколько категорий? Нужно ли добавлять теги для каждой категории? Пример:

Table:
gallery

gallery_id
image
tags

Table
audio

audio_id
title
link
audio_tags

Etc... 

Или я могу создать только одну таблицу с именем "tags" и все теги в ней? Подобно: Теги таблицы:

tag_id
tag

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 18 ноября 2010

Это зависит от вас, как вам нужно сформировать приложение.Если вы хотите, чтобы теги были общими для галерей и аудио, используйте одну таблицу и две справочные таблицы «многие ко многим» (или одну с полиморфизмом).

0 голосов
/ 18 ноября 2010

Зависит от того, хотите ли вы, чтобы теги распределялись между несколькими объектами.Если вы хотите, чтобы это было отдельно, то я бы сделал для них отдельные таблицы тегов.Если нет, я бы имел одну и ту же таблицу тегов и использовал бы разные таблицы для каждого отношения, которое будут иметь теги, поэтому

для отдельного:

gallery
...
gallery_tags
tag_id
tag

tags_to_gallery
tag_id
gallery_id
..same for audio..

для не отдельного:

  gallery
  ...
  audio
  ...
  tags
    tag_id
    tag

  gallery_to_tag
  gallery_id
  tag_id

  audio_to_tag
  audio_id
  tag_id 

Вы также можете сделать это с одной ploymorphic таблицей.с таблицей с чем-то вроде этого:

tag_relations
 tag_id
 object_id
 object_table
0 голосов
/ 18 ноября 2010

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...