Обработка данных иерархии в базе данных

Вы всегда должны использовать функции BigDecimal для выполнения операций над значениями Integer. Целое число может быть представлено как BigDecimal, но не всегда наоборот, например, если попытаться привести BigDecimal к целому числу следующим образом:

myBigDecimal.intValueExact () оно выдаст исключение в случае потери информации. [ 112] blockquote>

так что просто делайте так, как вы делаете, и конвертируйте Integer в BigDecimal, а не наоборот, чтобы ничего плохого не случилось.

Вы можете проверить эту ссылку , там много информации о BigDecimal и BigInteger в Java.

7
задан Bill Karwin 5 May 2013 в 04:56
поделиться

6 ответов

Как MarkusQ и n8wrl уже указали, у Joe Celko есть некоторый хороший материал на этом. Я просто добавлю, что существует несколько способов смоделировать иерархию (книга Joe содержит несколько, я полагаю, не просто тот, что он рассматривает "лучшее"). Ваше окончательное решение, надо надеяться, примет во внимание Ваши собственные определенные потребности. Некоторые различные способы смоделировать его лучше для интенсивных действий записи, в то время как другие лучше для частых или быстрых чтений вверх и вниз по иерархии. Просто имейте в виду то, что Ваша система будет делать с ним.

4
ответ дан 6 December 2019 в 07:28
поделиться

Существуют некоторые определенные для поставщика расширения, чтобы сделать это, но мой любимый нейтральный в отношении дб путь прибывает от Joe Celko - Google 'Деревья Joe Celko и Иерархии', или купите эту книгу: текст ссылки

Это - очень умный основанный на наборе способ пойти. Легкий запросить иерархию. Я добавил 'parentID' поле, которое Вы имеете просто, потому что я спрашиваю 'прямых детей' и 'порождаю' вопросы много, и это ускоряет их. Но это - замечательный способ получить запрос 'descdent' или 'родословная'.

10
ответ дан 6 December 2019 в 07:28
поделиться

Можно также хотеть проверить "вложенные наборы" шаблон:

http://www.intelligententerprise.com/001020/celko.jhtml (неработающая ссылка)

Или Вы можете Google для больше.

P.S.: Проклятия, n8wrl, Вы вводите быстрее, чем я!

6
ответ дан 6 December 2019 в 07:28
поделиться

SQL Server 2008 представил hierarchyid тип данных

2
ответ дан 6 December 2019 в 07:28
поделиться

В Oracle можно использовать ПОДКЛЮЧЕНИЕ/НАЧИНАТЬ С запросить hierarchial данные. В SQL Server можно использовать хранимую процедуру, которая называет себя рекурсивно.

1
ответ дан 6 December 2019 в 07:28
поделиться

Я определенно рекомендовал бы вложенные наборы. Они являются великими.

http://threebit.net/tutorials/nestedset/tutorial1.html http://www.dbmsmag.com/9603d06.html

1
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

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