Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нумерация счетов / 21 сообщений из 21, страница 1 из 1
12.04.2005, 17:03
    #33011348
Easygoing
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Уважаемые коллеги, поделитесь опытом, как увас организована нумерация выставляемых счетов. У меня возникла необходимость возможности выставления счетов с уникальными номерами с нубуков торговых представителей которые 80% времени оффлайн. Пока есть толко одна идея, в каждой копии бд хранить некий уникальный идентификатор, который будет кодироваться в номер счета. Если вы уже решали подобные задачи, буду признателен за информацию.
Заранее спасибо.
...
Рейтинг: 0 / 0
12.04.2005, 17:21
    #33011403
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Да, в общем, совершенно универсальная задача.

- Если можно использовать id продавца как часть номера - делайте именно так; наиболее простой и надежный путь. Сделайте нумерацию вида NNNN/XX, где NNNN - номер по порядку, XX - продавец; всем будет удобно.

- Если не лень - можно выделять пулы номеров продавцам. Если продавец выставляет за день максимум десять счетов - пусть центральный сервер резервирует за ним сто номеров, а раз в неделю-две при синхронизации выделяет следующий пул.

- Чередование, то есть первому продавцу секвенсор настраивается как start with 1 increment by 100, второму - start with 2 increment by 100 и так далее. Собственно то же самое, что и первый путь, вид сбоку.

- Какая-нибудь жуть типа GUID, в качестве номера счета.
...
Рейтинг: 0 / 0
12.04.2005, 17:38
    #33011479
Easygoing
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
автор- Если можно использовать id продавца как часть номера - делайте именно так; наиболее простой и надежный путь. Сделайте нумерацию вида NNNN/XX, где NNNN - номер по порядку, XX - продавец; всем будет удобно.

Скорее не продавца, а копии скуля, т.к. продавец может заводить счета на разных рабочих местах, работающих с разными серверами.
...
Рейтинг: 0 / 0
12.04.2005, 18:26
    #33011705
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
EasygoingСкорее не продавца, а копии скуля, т.к. продавец может заводить счета на разных рабочих местах, работающих с разными серверами.
Согласен. Просто для меня неожиданна идея системы, в которой у продавцов есть ноутбуки, но они при этом активно ими меняются.
...
Рейтинг: 0 / 0
12.04.2005, 23:47
    #33012118
кхе-кхе
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
softwarer EasygoingСкорее не продавца, а копии скуля, т.к. продавец может заводить счета на разных рабочих местах, работающих с разными серверами.
Согласен. Просто для меня неожиданна идея системы, в которой у продавцов есть ноутбуки, но они при этом активно ими меняются.

а если и меняются - пусть логинятся в систему под своими ID которые им будут выдаваться админом БД вместе с паролем и логином
...
Рейтинг: 0 / 0
13.04.2005, 09:31
    #33012345
Easygoing
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
кхе-кхе softwarer EasygoingСкорее не продавца, а копии скуля, т.к. продавец может заводить счета на разных рабочих местах, работающих с разными серверами.
Согласен. Просто для меня неожиданна идея системы, в которой у продавцов есть ноутбуки, но они при этом активно ими меняются.

а если и меняются - пусть логинятся в систему под своими ID которые им будут выдаваться админом БД вместе с паролем и логином

ну да...... представь себе такую ситуацию:

у него на нубуке порядковый номер счета 1000 и ID 'AO'
потом он оказывается в центральном офисе где счетчик 1000 и пи................
...
Рейтинг: 0 / 0
13.04.2005, 09:55
    #33012402
eriwerwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
я о другом говорил

номера счетов пусть иду как идут у каждого на его ноутбуке в его системе

номер счета формировать как стринг <код сотрудника & код типа документа & код счета>

так вот имеется в виду, что коды сотрудникам нужно присваивать централизовано - админ БД выдает его вместе с паролем в систему и логином

например с ноутбука RSSU-MOS-567 в систему зашел пользователь с логином USER и паролем DEDEMAN при этом он опознается как пользователь Василий Петров и его ID VPTRV

в системе все номера счета (и прочих документов) формируются по этому упомянутому правилу как VPTRV_26_00001

если на этом же компьютере в систему зашел (залогинился) Сергей Пупкин его документы (в пределах таблиц этой же БД) формируются по аналогичным правилам, но выглядят как SPPKN_26_00002

чес гря даже жалко времени на объяснялки таких простых вещей
...
Рейтинг: 0 / 0
13.04.2005, 10:04
    #33012429
Easygoing
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Вы наверное не вникли в то о чем я говорю. Речь идет о том, что счета сливаются в центральную БД + можно заводить счета непосредственно в центральной БД. Торгаши могут работать на разных компутерах (проверено практикой) либо с центральной БД либо с desctop engine, т.е. есть потенциальная возможность забить 2 счета с одинаковыми номерами типа nnnn id. При переливе их в центральную БД получаем пи......................
...
Рейтинг: 0 / 0
13.04.2005, 13:55
    #33013324
к3цуцуе
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
EasygoingВы наверное не вникли в то о чем я говорю. Речь идет о том, что счета сливаются в центральную БД + можно заводить счета непосредственно в центральной БД. Торгаши могут работать на разных компутерах (проверено практикой) либо с центральной БД либо с desctop engine, т.е. есть потенциальная возможность забить 2 счета с одинаковыми номерами типа nnnn id. При переливе их в центральную БД получаем пи......................

да, согласен, это чтот я лопухнулся - не додумал - поротопился


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

200000001 - 2999999999
300000001 - 3999999999
400000001 - и т.п.
...
Рейтинг: 0 / 0
13.04.2005, 14:24
    #33013432
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
А не проще GUID использовать?
...
Рейтинг: 0 / 0
13.04.2005, 15:05
    #33013579
Easygoing
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Опупительно удобный номер счета получится......................
...
Рейтинг: 0 / 0
14.04.2005, 12:29
    #33015527
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Что весело - не сказано ничего нового по сравнению с моим первым ответом. Так и будет пережевываться еще пару месяцев :)
...
Рейтинг: 0 / 0
14.04.2005, 12:40
    #33015565
Old Nick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Зато уникальный :-)
...
Рейтинг: 0 / 0
14.04.2005, 13:24
    #33015754
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
softwarerЧто весело - не сказано ничего нового по сравнению с моим первым ответом. Так и будет пережевываться еще пару месяцев :)

желаете орден Кутузова на груть? с награждением лично Кутузовым

со всем своим уважением, отмечу, однако, что считаю дискусиию не "пережевыванием" а обсуждением...

субуго ИМХО использование GUID в контексте общей задачи не может рассматриваться как методологически верное решение - это своего рода "подпорка"... кроме того, что она ничего, по сути, на 100% не гарантирует...

с этой точки зрения выделять пулы номеров, вроде-бы правильнее, но вызывает обязательные предварительные действия, назначения, ограничения...

в любом случае задача формирования уникального признака должна ложиться на центральную БД-сервер...

ИМХО при каждом "сливании" данных с клиентских лэптопов, они должны получать уникальный идентификатор (пул номеров) на следующую сессию, до следующего подключения БД-клиента к БД-серверу...

таким образом номер счета будет формироваться как последовательность

идентификатор, обеспечивающий уникальность в пределах глобальной БД (выданный клиентскому БД-приложению центральной БД)

Идентификатор обеспечивающий уникальность записи в пределах локальной БД (Autoincrement или иной уникальный ключ)

уникальность идентификаторов или будет полностью контролироваться центральной БД (приложением)

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

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

REM рекомендую рассмотреть вариант

вариант "Ч"- снабдитьь ноутбуки GPS устройствами и использовать GPS для точного определения координат пользователя... и на основе этих данных формировать ключ как коннактенацию точного времени и данных о географическом положении ноутбука...

дополнительно снабдить ноутбуки БлюТус устроиствами, которые блокировали ввод новых данных в приложении при установлении связи с другим ноутбуком, на котором в этот момент ведется работа с таким приложением,
это для того, чтобы избежать вероятных конфликтов, если система GPS определит одинаковые географические данные для двух пользователей, работающих рядом на разных ноутбуках...
...
Рейтинг: 0 / 0
14.04.2005, 13:41
    #33015843
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
YBWжелаете орден Кутузова на груть? с награждением лично Кутузовым
Спасибо, у меня уже есть :)

YBWсо всем своим уважением, отмечу, однако, что считаю дискусиию не "пережевыванием" а обсуждением...
Признаться, именно дискуссионного обсуждения я пока не вижу. И пока что считаю тему слишком однозначной, слишком очевидной, чтобы было что всерьез обсуждать.
...
Рейтинг: 0 / 0
14.04.2005, 15:31
    #33016251
Владимир П.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
YBWвариант "Ч"- снабдитьь ноутбуки GPS устройствами и использовать GPS для точного определения координат пользователя... и на основе этих данных формировать ключ как коннактенацию точного времени и данных о географическом положении ноутбука...

Придется выходить на крыльцо оформлять счет. Заодно устраивать перекур, чтоб два раза не выходить.
...
Рейтинг: 0 / 0
14.04.2005, 16:13
    #33016442
цукеуке
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
softwarer YBWжелаете орден Кутузова на груть? с награждением лично Кутузовым
Спасибо, у меня уже есть :)

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

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

если не вижу смысла - то не вступаю в обсуждение, но все равно не назову его пережевыванием

REM>

понимаю, что это ничего не доказывает - просто нота...
...
Рейтинг: 0 / 0
16.04.2005, 14:45
    #33019493
VoDA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
eriwerwerя о другом говорил

номера счетов пусть иду как идут у каждого на его ноутбуке в его системе

номер счета формировать как стринг <код сотрудника & код типа документа & код счета>

так вот имеется в виду, что коды сотрудникам нужно присваивать централизовано - админ БД выдает его вместе с паролем в систему и логином

например с ноутбука RSSU-MOS-567 в систему зашел пользователь с логином USER и паролем DEDEMAN при этом он опознается как пользователь Василий Петров и его ID VPTRV

в системе все номера счета (и прочих документов) формируются по этому упомянутому правилу как VPTRV_26_00001

если на этом же компьютере в систему зашел (залогинился) Сергей Пупкин его документы (в пределах таблиц этой же БД) формируются по аналогичным правилам, но выглядят как SPPKN_26_00002

чес гря даже жалко времени на объяснялки таких простых вещей
Если еще добавить номер БД, с которой заводится счет, в формирование счета, то проблема с введением счетов с двух и более компов одним продавцем решена
Но вот сам номер вида DB10_SPPKN_26_00002 выглядит по меньшей мере странно...
ЗЫ все ИМХО!!!
...
Рейтинг: 0 / 0
16.04.2005, 18:47
    #33019629
Deft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Народ! А почему бы не добавить в номер счета идентификатор ноутбука?
Сделать типа <код сотрудника>&<код ноутбука>&<номер счета>+ потенциально ещё что-нибудь.

Вид типа AA010001 (или AA_01_0001), где
AA - код сотрудника, их может быть примерно 676 (26*26 - количество комбинаций букв, думаю этого достаточно на первое время),
01 - код ноутбука (их тоже может быть около 100)
0001 - на первое время 9999 счетов хватит, + можно 2 циферки добавить в качестве года.

И сделать распознавание кодировки как в банковских счетах, типа 810 код валюты (6,7,8 циферки)

По моему и вид не такой страшный AA010001
...
Рейтинг: 0 / 0
16.04.2005, 18:48
    #33019630
Deft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Причем адрес сервера сделать 00 (в качестве поля ноутбука)
...
Рейтинг: 0 / 0
04.05.2005, 20:14
    #33049098
BusyMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нумерация счетов
Deft AA - код сотрудника, их может быть примерно 676 (26*26 - количество комбинаций букв, думаю этого достаточно на первое время),


а если с цифрами - то 36*36 = 1296 (!)

эх.... жалко что нельзя в таком же виде нумеровать накладные и счета-фактуры
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нумерация счетов / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]