Гость
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB, структура данных / 16 сообщений из 16, страница 1 из 1
09.01.2012, 20:36
    #37606784
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Добрый день.
Стартую новый небольшой проект и есть желание реализовать хранение и обработку данных через NoSQL (mongoDB). С технической точки зрения все понятно, туториалы изучены, примеры написаны. А вот как организовать правильное хранение данных не ясно.
Суть в следующем: есть несколько объектов (проекты), они состоят из этапов, а они из задач и так далее. Я не могу понять все мне хранить в одной коллекции - проекты? Тогда у меня будет выюираться оочень большой пласт данных с каждым запросом. Или хранить в разных колекциях ссылаясь на идентификаторы, но тогда получаем туже реляционную бд, только вид с боку?

Коллеги поделитесь опытом! Заранее большое спасибо
...
Рейтинг: 0 / 0
09.01.2012, 21:59
    #37606851
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
вопрос в том, зачем тебе нужно выбрать nosql?
...
Рейтинг: 0 / 0
09.01.2012, 23:01
    #37606899
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Это экспиримент - в целях получения опыта работы с NOSQL.
...
Рейтинг: 0 / 0
09.01.2012, 23:59
    #37606948
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Тогда задача должна быть соответствующей NoSQL подходу
...
Рейтинг: 0 / 0
22.01.2012, 02:29
    #37625586
private
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Она и соответствует :)

Незнаю поможет-ли, это описание к НОдеЙС драйверу, реализация простого Блога, в одном случае используютсы комменты вложенные в пост во втором в разных коллекциях

http://alexeypetrushin.github.com/mongo-model/composite.html
http://alexeypetrushin.github.com/mongo-model/associations.html

Ответ на ваш вопрос зависит от числа задач и комментов а также от запросов, на первый взгляд я бы разбил на поекты->задачи(со вложенными комментами).
...
Рейтинг: 0 / 0
28.01.2012, 11:04
    #37636377
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
private,
Спасибо!
Я так и поступил, отдельная коллекция для Project, отдельныя для Task.
Например Project содержит в себе все данные о проекте, запросы на изменения, реестр рисков и мероприятия по ним, данные бюджета и список участников проекта. Получается многовато, но эта инфа загружается один раз в начале работы и хранится на клиенте до завершения его работы. Зато не приходится постоянно дергать сервис и сервер Mongo.

Тоже самое касается задач - они имеют ссылку на этап проекта, содержат историю их "движения" между исполнителями, содержат прикладываемые документы и т.д. Исполнителю всегда загружается только список задач на которых он сейчас ответственный.

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

Надеюсь комунибудь пригодится мой опыт!
...
Рейтинг: 0 / 0
06.02.2012, 16:17
    #37648872
NayZaK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Аналогичная проблема. Читаю доки по mongodb, там пишут:
http://www.mongodb.org/display/DOCS/Schema+Design#SchemaDesign-EmbeddingandLinking Generally, for "contains" relationships between entities, embedding should be be chosen. Use linking when not using linking would result in duplication of data.
Проблема в том, что не могу понять, какие объекты считать объектами с "contains" relationship содержимым.

Допустим, что у меня есть что-то вроде системы для тестирования людей. Имеем объекты Вопрос, Тест. Тест, естественно, содержит список вопросов. Так вот эти вопросы, являются частью теста, соответственно видим тот самый "contains" relationship . Однако копирование содержимого вопросов в Тест влечет за собой дублирование данных, о чем в документации тоже сказано.

Собственно, я в замешательстве. Прошу пролить свет на проблему.
...
Рейтинг: 0 / 0
07.02.2012, 00:36
    #37649503
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
проблемы никакой нет, все зависит от необходимых выборок. В случае с тестом и вопросами выборка идет последовательно - вначале отображаем список тестов из таблицы tests, потом список вопросов из таблицы questions по ключу test_id.
Вот если бы понадобилось одновременно и то, и другое, то нужно было бы уже взвешивать решения
...
Рейтинг: 0 / 0
29.03.2012, 05:44
    #37728732
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
А вот интересно, можно загрузить заепись из коллекции, но без встроенных объектов? Или загружать их выборочно

В документации я такого не нашел.
...
Рейтинг: 0 / 0
29.03.2012, 05:45
    #37728734
GregTk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Вопрос снят. Нашел такую штуку.

Код: javascript
1.
2.
// get all posts about 'tennis' but without the comments field
db.posts.find( { tags : 'tennis' }, { comments : 0 } );
...
Рейтинг: 0 / 0
28.06.2012, 18:59
    #37859364
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Код: sql
1.
Или хранить в разных колекциях ссылаясь на идентификаторы, но тогда получаем туже реляционную бд, только вид с боку?


А с чего вы взяли, что NoSQL = No related ?
...
Рейтинг: 0 / 0
29.06.2012, 14:35
    #37860415
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Hett
Код: sql
1.
Или хранить в разных колекциях ссылаясь на идентификаторы, но тогда получаем туже реляционную бд, только вид с боку?


А с чего вы взяли, что NoSQL = No related ?

Вопрсоом на вопрос:
как в mongo можно делать отношенияи работать с ними?
...
Рейтинг: 0 / 0
29.06.2012, 15:19
    #37860574
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
А что мешает создать 2 коллекции и в одной сослаться на другую?
...
Рейтинг: 0 / 0
30.06.2012, 21:07
    #37861759
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
Все же понятие реляционности, как оказалось, оказалось за рамками:

авторСУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB и др.), MongoDB не является реляционной СУБД. Среди других отличий от традиционных реляционных СУБД:
1. Отсутствует оператор «join». Обычно данные могут быть организованы более денормализованным способом, но на разработчиков ложится дополнительная нагрузка по обеспечению непротиворечивости данных.
2. Нет такого понятия, как «транзакция». Атомарность гарантируется только на уровне целого документа, т.е. частичное обновление документа произойти не может.
3. Отсутствует понятие «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом[3].
...
Рейтинг: 0 / 0
03.07.2012, 14:45
    #37864532
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
HettВсе же понятие реляционности, как оказалось, оказалось за рамками:

авторСУБД управляет наборами JSON-подобных документов, хранимых в двоичном виде в формате BSON. Хранение и поиск файлов в MongoDB происходит благодаря вызовам протокола GridFS. Подобно другим документо-ориентированным СУБД (CouchDB и др.), MongoDB не является реляционной СУБД. Среди других отличий от традиционных реляционных СУБД:
1. Отсутствует оператор «join». Обычно данные могут быть организованы более денормализованным способом, но на разработчиков ложится дополнительная нагрузка по обеспечению непротиворечивости данных.
2. Нет такого понятия, как «транзакция». Атомарность гарантируется только на уровне целого документа, т.е. частичное обновление документа произойти не может.
3. Отсутствует понятие «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом[3].

дык.... в том то и вопрос....
...
Рейтинг: 0 / 0
03.07.2012, 16:09
    #37864756
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MongoDB, структура данных
ну это я понятие реляционности не правильно понимал, простите меня
...
Рейтинг: 0 / 0
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / MongoDB, структура данных / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]