Хранение составных шаблонов (иерархические данные) в базе данных

Метод, который вы вставили, должен быть внутри класса, поэтому я включу его в один:

class A{
    private String createOrderSummary(int price, boolean addWhippedCream) {
         String priceMessage = "Name: Samantha";
         priceMessage += "\nAdd Whipped Cream?" + addWhippedCream;
         priceMessage += "\nQuantity: " + quantity;
         priceMessage += "\nTotal: $" + price;
         priceMessage += "\nThank You!";
         return priceMessage;
    }
}

Чтобы вызвать (вызвать) его, вам нужно создать объект класса [113 ], а затем вызовите этот метод для этого объекта.

Например:

A a = new A();
a.createOrderSummary(10, true);
new A().createOrderSummary(5, false);

вы можете сохранить результат такого вызова:

string result1 = a.createOrderSummary(10, true);
string result2 = new A().createOrderSummary(5, false);
8
задан mwigdahl 29 March 2009 в 16:51
поделиться

2 ответа

В то время как нахождение всех потомков строки с MPTT быстро, находя, что все дети могут быть медленными. Однако необходимо смочь зафиксировать это путем добавления a parent_id поле к Вашей таблице, которая записывает (да, избыточно) родителя строки. Затем поиск становится:

SELECT *
FROM tbl
WHERE parent_id = z

Да, parent_id содержит избыточную информацию, потенциально денормализовывая Вашу таблицу - но так как любой вставляет/обновляет/удаляет, уже требует глобальных изменений, сохраняя parent_id актуальный не очень дополнительно для оплаты. Вы могли альтернативно использовать a level поле, которое записывает вертикальный уровень строки, хотя это, на самом деле более вероятно, изменится под определенными типами преобразований (например, перемещение поддерева к другой точке в дереве).

Простое представление ссылки на родителя (т.е. просто наличие parent_id и нет left_pos или right_pos), конечно, быстрее для insert/update-heavy рабочих нагрузок, но единственные запросы, на которые это может ответить эффективно, "Находят, что родитель X" и "Находит, что дети X." Большинство рабочих нагрузок включают намного больше чтения, чем запись, таким образом, обычно MPTT быстрее полный - но возможно в Вашем случае необходимо рассмотреть перемещение ("назад") в ссылку на родителя?

6
ответ дан 5 December 2019 в 22:20
поделиться

Лучший способ хранить hierakial данные в базе данных, которую я услышал, состоит в том, чтобы использовать строковый атрибут, где содержание является списком родителей, разделенных, скажите двоеточия.

0
ответ дан 5 December 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: