Mongo Db теги родителей и детей, связанные с другими полями коллекций - PullRequest
1 голос
/ 12 сентября 2011

Хорошо, я собираюсь настроить мою схему dong монго для небольшого сайта, мне нужно воспроизвести эту схему в коллекции dong монго:

product
        -> tag1
              ->child_tag1
              ->child_tag2
        -> tag2
              ->child_tag1
              ->child_tag2
        -> tag3
              ->child_tag1
              ->child_tag2

, что является лучшим способом воспроизведенияэта схема с монго?

Конечно, мне нужно иметь возможность изменять тег или дочерний тег без обновления всех объектов коллекции :) [EDITED]

Хорошо, потому что я знаю, что мой вопрос не так ясен, мне нужночтобы уточнить, что я пытаюсь преобразовать сайт MySQL базы данных в сайт mongoDb.

Итак, у меня есть 4 таблицы в mysql:

products

id(AUTO) | product_name | qty
 1          biscuits      34
 2          limonade      29

tags

id(AUTO) |  tag_name 
  1            sugar
  2            eggs
  3            vitamine C

tags_childs

id(AUTO) | id_tag | tag_child_name
  1          1        glucouse
  2          2        protein
  3          2        chicken
products_tags

id_product | id_tag | id_tag_child 
  1            1         NULL
  1            1         1
  1            2         3
  2            3        NULL

, поэтому я использую таблицу products_tags для объединения более 4 таблиц(и именно поэтому нагревание включается, я переключаюсь на mongoDb:))

, чтобы я мог воспроизвести этот сценарий с коллекциями и объектами mongodb?

спасибо :)

1 Ответ

1 голос
/ 13 сентября 2011

Просто хотел убедиться, что я понимаю, что показывает ваш вышеупомянутый документ; по существу, многие продукты могут иметь много тегов, а теги могут иметь дочерние теги (тег Coding -> Php - дочерний тег Coding).

Учитывая мое понимание вышеизложенного вопроса, вот как я бы структурировал ваши коллекции Монго:

Коллекция продуктов:

{
   "ProductName":"Sweet Jelly",
   "Qty":9,
   "Tags":[
     ListOfTagIds
    ]
 }

В списке TagIds будут уникальные идентификаторы, которые mongoDB автоматически назначает каждому из созданных новых полей. см. Здесь

Оттуда я бы создал коллекцию тегов:

{
  "TagName":"Coding Languages";
  "ChildTags":[
      $_idOfChildren
   ]
}

Тогда, если у вашего тега есть ребенок:

{ 
  "TagName":"PHP",
}

Об этих отношениях между родителями и детьми вы можете прочитать немного больше об этом замечательном монго-ресурсе, расположенном здесь: Книга монго - Страница 16, начинающаяся с No Joins.

Удачи!

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