2012-02-10 3 views
4

Мы разрабатываем систему видео по требованию, в которой пользователи могут загружать видео. Мы хотим создать древовидную структуру архива видеороликов, где пользователь может создавать папки исполнителей/альбомов и т. Д. И сохранять видео в правильных папках. Как и все древовидные структуры, пользователь сможет перемещать видео между папками, удалять вспомогательные деревья, копировать видео и перемещать вспомогательные деревья и дочерние элементы.Должен ли я использовать ORM для моделирования большой древовидной структуры?

Дерево может содержать 10 000 000 видео и папок.

Мой вопрос будет ORM быть подходящим для дерева, как структура такого размера?

ответ

5

Предполагая, что ваша структура дерева в базе данных будет какой-то стол, как:

FolderId | ParentFolderId | FolderName

Почему нет?

Вопрос не в том, что вы используете ORM или нет, вопрос в том, какая проблема у вас есть, что ORM - это правильный инструмент для решения.

+1

В настоящее время мы должны решить, как мы сохраняем данные. Изучение ORM может быть сложным с временным масштабом проекта. С этой структурой таблицы, я полагаю, я мог бы просто обработать SQL? –

+1

«С этой структурой таблицы, я полагаю, я мог бы просто обработать SQL?» Именно то, что я думаю, избегайте ORM, если у вас нет сложной/большой структуры данных. –

+1

Сначала вам нужно определить логику данных и бизнес-процессов. Тогда вы должны подумать, как его сохранить и как легко получить доступ к нему. Я не могу ответить на ваш вопрос «просто ручная работа с SQL», потому что я не знаю ваших данных. Например, если мне нужно загрузить все дерево за один раз, почему бы мне просто не присоединить эту таблицу к таблице разрешений, чтобы получить ВСЕ папки, принадлежащие пользователю? Или, если мне нужно загрузить следующий уровень только тогда, когда пользователь перейдет туда, почему я не могу просто спросить «Where (x => x.ParentId = selectedId)»? Я могу использовать ANY ORM для этой цели. Или NO ORM, поскольку это просто. Или напишите SP. –

Смежные вопросы