Ну, честно.. Это очень плохая практика.
Предположим, у вас в корне 50 объектов... и по 50 на каждом уровне.
В итоге вы можете получить 312500000 "капсул" информации.
Теперь можно спросить: «Так что же в этом плохого?!» Я имею в виду, если это то, что требуется, то почему бы этого не сделать..
Правило №1: мы разрабатываем программное обеспечение, которое должны использовать люди.
И дело в том, что ни один человек не способен бросить взгляд на 312500000 элементов информации одновременно strong> и узнать или сделать из этого что-то полезное. (за исключением того, что это не помогает ему или ей смотреть это)
Правило № 2. Пользовательский интерфейс должен основываться на том, что необходимо, а не на том, что возможно.
А поскольку мы уже установили, что отображение 3 125 00000 капсул данных не требуется, нет причин приводить все то сразу.
И теперь вы можете выйти вперед и сказать: «Но мне на самом деле плевать на пользовательский интерфейс! Все, что мне нужно, это повторить эти данные, чтобы обработать некоторую информацию!
В этом случае вы, вероятно, захотите сохранить свои результаты где-нибудь для дальнейшего использования, но это означает, что это пакетное задание... так почему бы не применить к нему правила пакетного задания... например, обработать его поэлементно, что также может дать вам преимущество разделения его между еще большим количеством машин, если это необходимо.
Итак, вы видите... какой бы путь вы ни выбрали, у него не должно быть причин для этого.
(= определение того, что является плохой практикой.)
Обновление:
После прочтения интересных вопросов в комментариях я хотел бы обновить этот ответ дополнительным анализом:
Решение о том, что является плохой практикой, всегда должно основываться на том, что должно быть достигнуто, или какова роль каждой части в системе. В текущей ситуации (после прочтения комментариев) было представлено или подразумевалось, что хранилище данных на самом деле является постоянным носителем для объектов, в отличие от другой концепции, в которой данные являются «сердцем» приложения.
Мы можем определить два типа данных:
1) Центр обработки данных, который используется в приложениях, ориентированных на данные, таких как банки, CRM, ERP, веб-сайты или другие решения на основе услуг.
VS.
2) Носитель данных, который используется в качестве данных для сохранения, когда приложение не активно, например: любой простой файл сохранения приложения или любой файл сохранения игры и т. д.
Основное отличие состоит в том, что доступ к носителю сохраняемости данных должен осуществляться только одним экземпляром приложения в один момент времени. Это означает, что данные не предназначены для совместного использования многими экземплярами. если данные должны быть разделены - мы имеем дело с приложением центра обработки данных.
Если вашему приложению просто нужен носитель для сохранения данных — загрузка всей информации не может считаться плохой практикой — но вам все равно нужно убедиться, что вы не взрываете память. и в этих рамках работы SQL Server может оказаться не тем, что вам нужно, и не лучшим инструментом для использования.
В другом случае приложения, ориентированного на данные, мой первоначальный ответ остается, так как будет плохой практикой приводить всю информацию для каждого экземпляра приложения.
person
G.Y
schedule
06.05.2014