У меня есть объекты, представляющие папки, и мне интересно, должны ли они быть представлены в базе данных.Сохранение иерархии папок в реляционной базе данных
С одной стороны, кажется, что самый простой способ - не представлять объекты папки и просто хранить значение пути для объектов, содержащихся в папке. Проблемы, которые я вижу в этом, это то, что вы не можете сохранять папку, чьи потомки не содержат каких-либо элементов, что не слишком велико для сделки. Также у меня нет четкого представления о том, как загрузить иерархию папок для отображения (например, в TreeView), не загружая все в память заранее, что, вероятно, будет проблемой производительности.
Альтернативой является наличие таблицы «Папка» со ссылками на ее родительскую папку. Кажется, что это должно работать, но я не уверен, как разрешать папки с тем же именем, пока они не разделяют родителя. Должно ли это быть чем-то, что БД должно относиться к самому себе или это то, что я должен просто применять в бизнес-логике?
Его легко реализовать с новым HIERARCHYID, зарегистрированным в SQL Server 2008 (со стороны БД) –
Хм, это доступно в SQLCE? – Davy8
@ Davy8, во всех версиях (inlcuding express), кроме SQL CE. –