Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
Как правильно правильно реализовать логику. Есть документы. Номер документа увеличивается в зависимости от номера склада. У каждого склада своя нумерация документов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2018, 13:37 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
Как правильнее использовать триггер, скалярную функцию или что то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2018, 14:30 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
или хранимую процедуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2018, 14:35 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
ВаселинаНомер документа увеличивается в зависимости от номера склада. У номера документа есть префикс, зависящий от номера склада? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2018, 11:31 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
iap https://social.technet.microsoft.com/wiki/ru-ru/contents/articles/10056.microsoft-sql-server.aspx пи#дец, простите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 00:44 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_iap https://social.technet.microsoft.com/wiki/ru-ru/contents/articles/10056.microsoft-sql-server.aspx пи#дец, простите... Это восхищение или критика? :-) Это экстремально лучший вариант, подходит, если при высоких требованиях к производительности и функциональности. Он при этом в общем простой и лаконичный, просто в статье разнесено на несколько частей, из за этого кажется большим. Единственный минус - используется CLR. Конечно, если у ТС 10 пользователей, можно просто сделать таблицу счётчиков, и в процедуре или триггере присваивать новый номер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 08:56 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_iap https://social.technet.microsoft.com/wiki/ru-ru/contents/articles/10056.microsoft-sql-server.aspx пи#дец, простите... В многопользовательской среде вообще всё непросто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 10:24 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
можно просто сделать таблицу счётчиков, и в процедуре или триггере присваивать новый номер. Именно сделать таблицу счетчиков и в ТРИГГЕРЕ присваивать новый номер ПРИ СОЗДАНИИ НОВОГО ДОКУМЕНТА. Я этот метод использую почти 20 лет и никаких проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 11:17 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
d7i можно просто сделать таблицу счётчиков, и в процедуре или триггере присваивать новый номер. Именно сделать таблицу счетчиков и в ТРИГГЕРЕ присваивать новый номер ПРИ СОЗДАНИИ НОВОГО ДОКУМЕНТА. Я этот метод использую почти 20 лет и никаких проблем. ох эти романтики... 20 лет ничему их жизнь не учит ps капс это важность ваше подчёркивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 11:25 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
d7i можно просто сделать таблицу счётчиков, и в процедуре или триггере присваивать новый номер. Именно сделать таблицу счетчиков и в ТРИГГЕРЕ присваивать новый номер ПРИ СОЗДАНИИ НОВОГО ДОКУМЕНТА. Я этот метод использую почти 20 лет и никаких проблем.Я тоже. Но при этом я прекрасно понимаю, что это говнокод. Потому что полюбому надо SELECTом получить текущий номер из таблицы, потом UPDATEом его изменить, да ещё в другую таблицу вставить. Если не блокировать таблицы в монопольном режиме доступа, то рано или поздно возникнут накладки в нумерации. Особенно если пользователей несколько сотен или тысяч. В то же время такой уровень изоляции транзакции приведёт к катастрафическому падению производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 11:25 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
iapЕсли не блокировать таблицы в монопольном режиме доступа, то рано или поздно возникнут накладки в нумерации.Таблицы-то зачем? Достаточно строку в таблице, хранящей счетчики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 11:56 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
PS Мне всегда хватало identity PPS Для всего остального я мутил свои счётчики ... наверное я хреновый проектировщик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:03 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_, identity не прикрутишь для разнородных номеров ака "Номер документа увеличивается в зависимости от номера склада" а так да, таблица со складами, масками и последним значением, при добавление блокировать вычитку строки счётчика и увеличивать при успешном окончании или просто увеличивать и забить на стабильный +1(чаще всего требование ничем не аргументируется кроме как "хочу и всё тут") Из радостей - блокировка строки счётчика до окончания вставки вашего документа, или если отказаться от +1 то только на момент генерации номера, а всавилось или нет дело не обяхательное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:12 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
TaPaKSIMPLicity_, identity не прикрутишь для разнородных номеров ака "Номер документа увеличивается в зависимости от номера склада" а так да, таблица со складами, масками и последним значением, при добавление блокировать вычитку строки счётчика и увеличивать при успешном окончании или просто увеличивать и забить на стабильный +1(чаще всего требование ничем не аргументируется кроме как "хочу и всё тут") Из радостей - блокировка строки счётчика до окончания вставки вашего документа, или если отказаться от +1 то только на момент генерации номера, а всавилось или нет дело не обязательное Да, наверное. ... и вариант invm (с отдельной таблицей) мне нравится больше... в силу снижения нагрузок. Особенно при распределённых системах. Может быть, для этих случаев сиквенсы - "луч добра", но... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:20 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_TaPaKSIMPLicity_, identity не прикрутишь для разнородных номеров ака "Номер документа увеличивается в зависимости от номера склада" а так да, таблица со складами, масками и последним значением, при добавление блокировать вычитку строки счётчика и увеличивать при успешном окончании или просто увеличивать и забить на стабильный +1(чаще всего требование ничем не аргументируется кроме как "хочу и всё тут") Из радостей - блокировка строки счётчика до окончания вставки вашего документа, или если отказаться от +1 то только на момент генерации номера, а всавилось или нет дело не обязательное Да, наверное. ... и вариант invm (с отдельной таблицей) мне нравится больше... в силу снижения нагрузок. Особенно при распределённых системах. Может быть, для этих случаев сиквенсы - "луч добра", но... ну в общем это и есть вариант с отдельной таблицей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:22 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
Васелинаили хранимую процедуру Возвращаясь к теме. Если добавление идёт через единственную хранимую процедуру,- то лучше (на мой взгляд) логику в ней реализовать. И избегать вставок "кроме как через неё". Если добавляется абы как (где-то документы добавляются хранимкой, а где-то запросом от клиентского приложения) , - то будет лучше триггером. Это плохая практика, но сработает. Жизнь можно облегчить грамотно сформировав индекс. Я бы, наверное, построил НЕкластерный индекс по склад - номер. Кластерный (такой же) был бы идеален, но на больших данных частых вставках, подозреваю, он будет слишком часто обновляться; а в том как работает механизм перестроения кластерного индекса я не сильно разбираюсь ... Если я где-то не прав (по теме топика) - поправьте.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:30 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_, авторЖизнь можно облегчить грамотно сформировав индекс. Я бы, наверное, построил НЕкластерный индекс по склад - номер. Кластерный (такой же) был бы идеален, но на больших данных частых вставках, подозреваю, он будет слишком часто обновляться; а в том как работает механизм перестроения кластерного индекса я не сильно разбираюсь ... наша песня хороша, начинай сначала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 12:33 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
d7iЯ этот метод использую почти 20 лет и никаких проблем.Первое же нагруженное приложение - и проблемы будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 13:43 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_Я бы, наверное, построил НЕкластерный индекс по склад - номер. Кластерный (такой же) был бы идеален, но на больших данных частых вставках, подозреваю, он будет слишком часто обновляться; а в том как работает механизм перестроения кластерного индекса я не сильно разбираюсь ... А как работает "механизм перестроения НЕкластерного индекса" вы разбираетесь? НЕкластерный не нужно обновлять? А после обновления НЕкластерного не нужно обновлять кластерный/кучу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 13:54 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
Попроектирую и я тоже... 1. Идентити - как главный номер и суррогатный ключ. 2. Строковое поле, куда можно вводить любой номер. Можно генерировать автоматом в процедуре (типа, нет номера - генерируем, причем совсем не обязательно в момент ввода документа - можно постобработкой) или вводить/менять ручками - как ужо сделаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:18 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
ВаселинаКак правильнее использовать триггер, скалярную функцию или что то другое? Правильнее всего использовать бумажный "журнал регистрации документов", который и будет выполнять задачу сериализации при генерации номеров. На каждом складе - свой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:27 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_Если добавление идёт через единственную хранимую процедуру,- то лучше (на мой взгляд) логику в ней реализовать. И избегать вставок "кроме как через неё".Кто мешает запустить процедуру одновременно в десяти коннектах?invmiapЕсли не блокировать таблицы в монопольном режиме доступа, то рано или поздно возникнут накладки в нумерации.Таблицы-то зачем? Достаточно строку в таблице, хранящей счетчики.Какая разница, если в любом случае речь об общем ресурсе, к которому необходимо организовать последовательный доступ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 14:52 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
iapКакая разница, если в любом случае речь об общем ресурсе, к которому необходимо организовать последовательный доступ?Разница большая, - потому что общий ресурс не таблица, а строка этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 15:01 |
|
||
|
Нумерация документов
|
|||
|---|---|---|---|
|
#18+
invmiapКакая разница, если в любом случае речь об общем ресурсе, к которому необходимо организовать последовательный доступ?Разница большая, - потому что общий ресурс не таблица, а строка этой таблицы.Всё равно же надо ждать, пока он освободится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2018, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39654795&tid=1689619]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
132ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 474ms |

| 0 / 0 |
