2012-03-02 5 views
0

Я новичок в БД, и у меня есть проблема здесь. Мне нужно сохранить выражение в таблицу, используя древовидную структуру. как это: For example, this is the expressionСоздать новую таблицу или вставить данные в существующую таблицу?

Уникальный идентификатор этого выражения: 1

Я первым превратить его в структуру дерева, как:

enter image description here

Затем я пытаюсь сохранить дерево в таблицу под названием «Узел». вот так: enter image description here

И моя проблема: для каждого выражения следует сохранить древовидную структуру в существующую таблицу «Узла» (используя ExpressionID для различения выражений)? Или мне нужно создать новую таблицу для каждого выражения (конечно, используя имя Expression в качестве имени таблицы)?

Возможно, не так эффективно создавать множество таблиц?

Спасибо! Если это необходимо, я также могу разместить другие связанные таблицы.

ответ

2

Не создавайте новую таблицу. Это приведет к тому, что столько таблиц, сколько вы будете иметь выражения, что усложнит работу всей системы.

Также, когда СУБД должна найти нужную таблицу среди многих (для данного имени таблицы), это также требует некоторой производительности, потенциально более того, чем поиск множества строк в хорошо проиндексированной отдельной таблице. И обледенение на торте состоит в том, что вы, вероятно, тратите много места - таблица растет на страницах, и если ваши выражения намного меньше, чем страница (обычно 4-8 КБ, в зависимости от базы данных), вы получите многие страницы почти полностью пусты.

В качестве побочного элемента вам даже нужно хранить отдельные узлы выражения как отдельные строки в базе данных? Это имеет смысл, если вы хотите каким-то образом искать или анализировать отдельные узлы, но если вам нужно только прочитать и выполнить выражение в целом, то просто сохранить все выражение (в его строковом формате или закодировано как XML или что-то еще) в CLOB/BLOB имеет больше смысла.

0

Нет, не создавайте новую таблицу для каждого выражения, сохраняйте их в одной таблице. Это обычный способ DB. Таблица не является объектом.

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