Сообщение Re[6]: бездырочная нумерация от 15.04.2015 19:34
Изменено 15.04.2015 19:49 developer.cpp
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, developer.cpp, Вы писали:
d>> Данных слишком много (отмечу, что не в справочниках) и они не помещаются в ОП. А проанализировать их можно быстро, загрузив в непрерывный одномерный массив. Поэтому гружу в массив кусками select where 1<=idx<1000, затем select where 1000<=idx<2000 ... и обрабатываю по отдельности, а затем собираю результат обработки. Во время анализа на перенумерацию время тратить не эффективно, а вот когда пользователь ковыряется с таблицами пусть перенумеровывается.
W>Так, значит это не проблема "красивых номеров".
W>Но я все еще не вижу необходимости в перенумерации. Для того, чтобы "грузить кусками", не нужна строгая последовательность номеров, достаточно того, что они монотонно возрастающие.
W>Дополнительные вопросы.
W>1. Какая СУБД и версия используется.
SQLite3
W>2. Если данные не в справочниках, а в других таблицах, то что в данном справочнике? Только номера, а в других таблицах FK ссылки на него?
данные для обработки в других таблицах. Средствами СУБД их анализировать накладно, анализ делает специализированная числодробилка на C++.
данные вытаскиваются в многомерный массив u[i1][i2][i3][i4][i5], представляющий собой интерфейс к одномерному массиву. i1 --- номер из первого спраочника, i2 --- номер из второго справочника ...
W>Здравствуйте, developer.cpp, Вы писали:
d>> Данных слишком много (отмечу, что не в справочниках) и они не помещаются в ОП. А проанализировать их можно быстро, загрузив в непрерывный одномерный массив. Поэтому гружу в массив кусками select where 1<=idx<1000, затем select where 1000<=idx<2000 ... и обрабатываю по отдельности, а затем собираю результат обработки. Во время анализа на перенумерацию время тратить не эффективно, а вот когда пользователь ковыряется с таблицами пусть перенумеровывается.
W>Так, значит это не проблема "красивых номеров".
W>Но я все еще не вижу необходимости в перенумерации. Для того, чтобы "грузить кусками", не нужна строгая последовательность номеров, достаточно того, что они монотонно возрастающие.
W>Дополнительные вопросы.
W>1. Какая СУБД и версия используется.
SQLite3
W>2. Если данные не в справочниках, а в других таблицах, то что в данном справочнике? Только номера, а в других таблицах FK ссылки на него?
данные для обработки в других таблицах. Средствами СУБД их анализировать накладно, анализ делает специализированная числодробилка на C++.
данные вытаскиваются в многомерный массив u[i1][i2][i3][i4][i5], представляющий собой интерфейс к одномерному массиву. i1 --- номер из первого спраочника, i2 --- номер из второго справочника ...
Re[6]: бездырочная нумерация
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, developer.cpp, Вы писали:
d>> Данных слишком много (отмечу, что не в справочниках) и они не помещаются в ОП. А проанализировать их можно быстро, загрузив в непрерывный одномерный массив. Поэтому гружу в массив кусками select where 1<=idx<1000, затем select where 1000<=idx<2000 ... и обрабатываю по отдельности, а затем собираю результат обработки. Во время анализа на перенумерацию время тратить не эффективно, а вот когда пользователь ковыряется с таблицами пусть перенумеровывается.
W>Так, значит это не проблема "красивых номеров".
W>Но я все еще не вижу необходимости в перенумерации. Для того, чтобы "грузить кусками", не нужна строгая последовательность номеров, достаточно того, что они монотонно возрастающие.
W>Дополнительные вопросы.
W>1. Какая СУБД и версия используется.
SQLite3
W>2. Если данные не в справочниках, а в других таблицах, то что в данном справочнике? Только номера, а в других таблицах FK ссылки на него?
данные для обработки в других таблицах. Средствами СУБД их анализировать накладно, анализ делает специализированная числодробилка на C++.
данные вытаскиваются в многомерный массив u[i1][i2][i3][i4][i5], представляющий собой интерфейс к одномерному массиву. i1 --- номер из первого спраочника, i2 --- номер из второго справочника ...
Если i1 --- это индекс из "бездырочной нумерации" то по этому индексу запись делается сразу же в нужный участок памяти, и если i1 первичный ключ из множества
с дырками, то нужно вычислять что же это за элемент массива u
W>Здравствуйте, developer.cpp, Вы писали:
d>> Данных слишком много (отмечу, что не в справочниках) и они не помещаются в ОП. А проанализировать их можно быстро, загрузив в непрерывный одномерный массив. Поэтому гружу в массив кусками select where 1<=idx<1000, затем select where 1000<=idx<2000 ... и обрабатываю по отдельности, а затем собираю результат обработки. Во время анализа на перенумерацию время тратить не эффективно, а вот когда пользователь ковыряется с таблицами пусть перенумеровывается.
W>Так, значит это не проблема "красивых номеров".
W>Но я все еще не вижу необходимости в перенумерации. Для того, чтобы "грузить кусками", не нужна строгая последовательность номеров, достаточно того, что они монотонно возрастающие.
W>Дополнительные вопросы.
W>1. Какая СУБД и версия используется.
SQLite3
W>2. Если данные не в справочниках, а в других таблицах, то что в данном справочнике? Только номера, а в других таблицах FK ссылки на него?
данные для обработки в других таблицах. Средствами СУБД их анализировать накладно, анализ делает специализированная числодробилка на C++.
данные вытаскиваются в многомерный массив u[i1][i2][i3][i4][i5], представляющий собой интерфейс к одномерному массиву. i1 --- номер из первого спраочника, i2 --- номер из второго справочника ...
Если i1 --- это индекс из "бездырочной нумерации" то по этому индексу запись делается сразу же в нужный участок памяти, и если i1 первичный ключ из множества
с дырками, то нужно вычислять что же это за элемент массива u