Из всех способов сохранить дерево в RDMS наиболее распространенными являются списки смежности и вложенные наборы. Вложенные наборы оптимизированы для чтений и могут получить все дерево в едином запросе. Списки смежности оптимизированы для записей, и может добавленный к с в простом запросе.
Со смежностью перечисляет каждый узел, имеет столбец, который относится к родительскому узлу, или дочерний узел (другие ссылки возможны). Используя это можно создать иерархию на основе отношений отцов и детей. К сожалению, если Вы не ограничиваете глубину своего дерева, Вы не можете вытянуть все это в одном запросе, и чтение его обычно медленнее, чем обновление его.
С вложенным набором моделируют, инверсия верна, чтение быстро и легко, но обновления становятся сложными, потому что необходимо обслужить систему нумерации. Вложенная модель набора кодирует и происхождение и порядок сортировки путем перечисления всех узлов с помощью основанной на предварительном порядке системы нумерации.
я использовал вложенную модель набора и в то время как это сложно для чтения, оптимизируя большую иерархию, это стоит того. После того как Вы делаете несколько упражнений в вытягивании дерева и нумерации узлов, необходимо приобрести навык его.
Мое исследование в области этого метода, запущенного в этой статье: Руководящие Иерархические Данные в MySQL .
StringBuilder.AppendLine
будет использовать Environment.NewLine
, что означает « \ r \ n
» для платформ, отличных от Unix, и « \ n
] "для платформ Unix.
Это всегда будет « \ r \ n
» для компьютера Windows, но вы можете использовать Environment.NewLine
вместо жестко заданного значения.
спасибо @Guffa за проверку
Это код из StringBuilder.AppendLine (строка)
метод (с использованием .NET Reflector):
[ComVisible(false)]
public StringBuilder AppendLine(string value)
{
this.Append(value);
return this.Append(Environment.NewLine);
}
Как видите, он действительно использует свойство Environment.NewLine
.
На Mac новой строкой была '\ r', то есть до тех пор, пока они не основали свою ОС на Linux. Теперь это '\ n'.