Software Kamal Ответов: 1

Здравствуйте, я хочу знать, как сделать бесконечные дочерние узлы дочерних узлов и так далее в таблице SQL для плана счетов


Наша компания проектирует бухгалтерские системы которые имеют план счетов бесконечных уровней и эти цифры не уникальны например

1000 / активы

1100 / Оборотные Активы
Так что мне нужно сделать
L1 L2 L3 L4 L5 и так далее.. Бесконечных уровней
1100/100/200/300/100

Но есть также 100, 200 ,300 из другой категории, называемой, например, пассивами

Обязательства за 2000 год
2100 краткосрочные обязательства

L1 L2 L3 L4 L5
Итак, есть такой счет : 2100/100/200/300/100


Наконец, то, что я пытаюсь сделать, - это разработать эту бухгалтерскую таблицу следующим образом :

Имя Таблицы: Учетная Запись
[Методами accountid, атрибутом parentId, уровень, имя], я думаю, я сделаю методами accountid, атрибутом parentId,CompositeKey уровне

Вопрос в том, откуда я знаю, что 100 наследуют от 300 наследуют от 200 и пришли из обязательств 2100 ? он также будет исходить от родителей 1100

Вот в чем проблема может быть я не могу хорошо это спроектировать,

Я знаю, что могу использовать уровни как строку, а не целое число, но большие данные и большие записи сделают запросы медленными, например, внутри таблицы учетных записей ParentID может быть 2100/100/200/300
И это, возможно, сработает, но как я проектирую их с целочисленными значениями и бесконечным потомком ребенка


Еще Один Дополнительный Вопрос : Как Я Прикрепляю Это К Источнику Данных TreeView !


Извините, если я вас неправильно понял или не могу хорошо объяснить.

Что я уже пробовал:

Желая нормальную таблицу ID, ParentID, но я на самом деле терплю неудачу.

Richard Deeming

Может быть, тип hierarchyid[^] тип может помочь?

1 Ответов

Рейтинг:
1

RickZeeland

Может быть, вы можете использовать отношения "многие ко многим", вот пример:
Моделирование данных-отношения "многие ко многим" [Gerardnico][^]

Моя база данных выбора (после многолетней борьбы с SQL Server) теперь PostgreSQL, он поддерживает поля" multi value", см.: PostgreSQL: Документация: 9.5: Составные Типы[^]

Но поскольку вы, вероятно, используете SQL Server, возможно XML fields был бы вариант, смотрите этот пример: Использование предложения FOR XML для возврата результатов запроса в виде XML-Simple Talk[^]