проблема с иерархической моделью базы данных? - PullRequest
0 голосов
/ 24 августа 2011

У меня проблема с моим дизайном БД, я разрабатываю форум, на котором вы можете добавить topcis, а затем подтемы внутри этого форума и т. Д., Но в этом подфоруме должны отображаться ответы по этой теме, а также подтема, поэтому у вас есть родительская тема и дети, моя проблема связана с идентификатором, я имею в виду, например, когда вы создаете идентификатор темы = 1, а затем назначаете parent_id = 1, но как вы узнаете детей этой темы, например идентификатор темы = 2, parent_id = 1, вы можете назначить детям id = 2, но есть ли лучший способ? как бы вы подошли к решению этой проблемы? также mysql я не k

Я получил две таблицы

"Тема"

идентификатор название id_creator Дата сообщение parent_id

"ответ"

идентификатор название сообщение id_creator дата

1 Ответ

2 голосов
/ 25 августа 2011

Мне пришлось сделать это в MySQL недавно, к сожалению, MySQL не предлагает ничего полезного для обработки иерархических данных.

Я использовал дополнительный столбец varchar, называемый path, в котором я буду хранить «путь», ведущий к текущему элементу.Например, строка с id = 127, которая является дочерним элементом id = 120, который является дочерним элементом для id = 15, будет иметь путь = '/ 15/120/127'.

Вам необходимо позаботиться оэто самостоятельно при вставке данных.

Извлечение всех строк, которые являются прямыми или непрямыми дочерними элементами строки с id = 15, будет выглядеть следующим образом:

SELECT * FROM table WHERE
  path LIKE '%/15/%'

Я также вижучто это довольно обсуждаемая тема здесь, на Stackoverflow.Посмотрите справа в столбце Связанные рядом с этим вопросом.

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