Что было бы хорошей схемой для классификации объектов на основе иерархии - PullRequest
0 голосов
/ 28 января 2011

У меня есть список видео, которые я хотел бы классифицировать в иерархии

category (id, name, parent)
video (id, name)
video_category (id, video_id, category_id)

мои категории выглядели бы так:

/A/B/C/[C1, C2]
/D/E/F/[D1, D2]

Так что, если мое видео классифицируется следующим образом

v1 categorized as C1
v2 categorized as C2

If I view underneath "C" it should show me both videos.

Это подходящий дизайн?

1 Ответ

1 голос
/ 28 января 2011

Я думаю, что ваш дизайн довольно хороший, с небольшими комментариями и одним большим, но.

Маленькие комментарии:

  • video_category не нужен идентификатор, форма его столбцовуникальный составной первичный ключ уже.Добавление здесь дополнительного идентификатора позволяет хранить дублирующиеся данные.
  • Старайтесь избегать использования идентификатора в качестве столбца;вызовите столбец идентификатора в таблице видео «video_id», чтобы было легче запомнить, к каким столбцам в других таблицах вы можете присоединиться к нему (это становится тем полезнее, чем крупнее и сложнее ваша схема)

Большое, но , но MySQL не поддерживает соединение до , что является проблемой, поскольку это наиболее интуитивно понятный способ обхода таких деревьев.Есть способы обойти это, либо путем реализации более сложной схемы, либо путем итеративного структурирования процедур обхода дерева вместо рекурсивного.Вы можете найти ссылки в следующих полезных:

http://forums.mysql.com/read.php?98,38047,38089#msg-38089

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