|
|
|
структура БД
|
|||
|---|---|---|---|
|
#18+
приветы! есть таблица Jurnal , где фиксируется передача товаров между магазинами. т.е. от магизина А в магазин Б предано 10шт 20-ти рублевых лопат в общей сумме 200р. мы передаем таблице только код товара, количество, цена, сумма, от кого(ид_магазин), кому(ид_магазин). при этом нужно подсчитать значение некоторых полей и вставит в этой строке. остаток товара для магазин А и магазин Б. данный момент имею таблицу которую прикрепил как рисунок. ща в таблице заложен триггер и работает очень медленно. какие идеи ? можно рассматривать изменение таблице, даже добавление новой. спс! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 01:03 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10, можно например рассмотреть оптимизацию запроса на изменение и триггера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 01:16 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
iljy, по триггеру думаю дальше некуда, если оставить таблицу так как есть. ищет, магазин А с таким товаром по всей табл. потом Магазин Б. если несколько миллион записей, только для поиска идет куча времени. причем если вставлю несколько тыс. строк, для каждой строки нужно будет сканировать всю таблицу. наверно поля-остатков вынести в отдельную табл и связать по какому нить поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 01:32 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10наверно поля-остатков вынести в отдельную табл и связать по какому нить поле Так и надо делать. Движение товара - одна сущность, остатки товара - другая сущность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 11:06 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
BorisS, ну отделяли остатков в другую табл. и что дальше? вюхи, триггеры, функции ...чего и как использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 11:14 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Существует мнение, что хранить остатки в виде отдельной сущности вообще вредно. А нужно получать их динамически в виде отчета по "проводкам". На моем первом месте работы, как раз все время наступали на грабли с остатками. Но там база была на DBF и клиент на FoxPro написанный и динамический их расчет был действительно процессом очень длительным даже с индексами, поэтому они периодически считались и хранились. Но в итоге нередко оказывались неверными. На нормальном по мощности SQL-сервере не вижу проблемы, чтобы считать их динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 11:24 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
BorisS, ну как реализовать логику, после как отделял табл.? чуть раскройте если можно Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 11:33 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
BorisS чтобы считать их динамически. но только ограниченное время. 1. Сделать материализованные представления для остатков как минимум три штуки год, месяц, день. если редакция позволит. 2. Тоже самое но триггером, который правильно написать. 3. Фиксировать остаток на дату в таблице (реперные остатки) от них считать агрегатами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 11:34 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Ken@t.... 3. Фиксировать остаток на дату в таблице (реперные остатки) от них считать агрегатами. т.е. фиксировать остаток каждого продукта для всех магазинах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 21:10 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
еще у кого какие идеи? принимаем любых идей) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2012, 22:11 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
хотел использовать материализованные представления, но там столько ограничений, то нельзя сё нельзя. max/min,union,DISTINCT итп. оставил таблицу как есть, создал вот такую функцию, которая вернет остаток(количество,сумма) конкретного товара для конкретной точки в момент осуществление приход/расход. приход/расход может осуществляться задним числом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. и повесил вот такой триггер: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. считает все правильно, но работает очень медленно. есть у кого идеи, буду рад...) не судите строго, я чайник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2012, 22:36 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10еще у кого какие идеи? принимаем любых идей) Ответ дан: BorisSДвижение товара - одна сущность, остатки товара - другая сущность. Или вы хотите что б за вас все сделали?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 00:57 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Злой БобрBorisSДвижение товара - одна сущность, остатки товара - другая сущность. Или вы хотите что б за вас все сделали?.. нет, этого я не говорил. насколько я понял, остаток вынести и связать с табл. движение товара, т.е. Jurnal. примерно во так: Id_Jurnal ,ostN1 ,OstNS1 ,OstN2 ,OstNS2 ,ostk1 ,OstkS1 ,Ostk2 ,OstkS2 в таблице остаток будет столько записей-сколько в таблице Jurnal. и это что нибудь мне даст? не могу сделать так, чтоб там хранились остатки конкретных товаров по магазинам только по последней операции,так как уже отметил, приход/расход может осуществляться задним числом. значит мы должны иметь остатки остатки конкретных товаров по магазинам в любой дате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 09:39 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10, Неправильно. Я уже давно невстречал студента который на каждый элемент сущности заводит отдельный столбец. Поэтому для меня это дико. Учите матчасть а потом лепите базы. Если это учебная задачка то можете взять готовое решение у лаборантов на кафедре. Если задача рабочая - ... В общем учиться, учиться и еще раз учиться. И кстати сразу по поводу последующего за этим ныться что пришел за помощью а отправляют за учебниками. Сложно как-то объяснять если человек незнает элементарных вещей, даже теоретически. Если б у вас были хоть малейшие понятия о структурах БД, а так это как прочитать недельную лекцию (но вы ведь хотите что б все и сразу, а такого я лично неумею). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 12:49 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, спс за ответ). постараюсь читать по-больше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 14:11 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
попробую так, конечно если скажете, что так нормально: Jurnal Id_jurnalKodTOtKogoKomuPriceKolSummaDataType KodT---------код товара OtKogo,Komu-ID_точек(магазин,склад) Type---------тип операции(приход, расход, перемещение...) и след таблица. Ostatok (остаток на каждый день) IDShopKodTKolSummaData Shop-код точки(магазин,склад) Data-дата без времени, гггг.мм.дд при добавление в табл Jurnal, через триггер или ХП заполняем/обновляем табл.Ostatok. т.е. O.Kol=O.Kol-J.Kol, O.Summa=O.Summa-J.Summa при (J.OtKogo=O.Shop AND J.KodT=O.KodT AND J.Data=O.Data) O.Kol=O.Kol+J.Kol, O.Summa=O.Summa+J.Summa при (J.Komu=O.Shop AND J.KodT=O.KodT AND J.Data=O.Data) если не будет совпадение по указанным полям, то просто добавляем новую строку в табл. Ostatok вопрос: 1.Правильно ли иду или есть боле нормальный вариант? 2.учитывая что БД у меня на MSSQL, табл. Ostatok манипулировать через триггер или ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2012, 09:23 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10, Табл движений: id - ИД записи dt - дата в формате БД (с миллисекундами и пр., т.е. полный формат) id_sklad - ИД склада, магазина, киоска, ... id_tov - ИД товара kol - количество товара. Приход положительный, расход отрицательный. sum - сумма товара. Если нада видеть отдельно наценку то добавляем такое же поле для наценки. То же для скидок. Приход положительный, расход отрицательный. Таблица остатков: аналогична таблице движений только дата определяется как начало дня (недели, декады, месяца - зависит от того какой период остатков вы выберите) Таблицу остатков обновлять согласно выбранного периода. Период день выбирают когда ну реально огромный объем за день. У вас я так подозреваю будет период месяц. Соответственно и обновлять лучше хранимкой, что б каждый раз немучить триггер. По крайней мере видно что что-то где-то читали. Но это даже не вершки. А до корешков вам еще ой как далеко. Если рабочее что-то лепите то лучше консультируйтесь у людей кто имеет опыт построения и эксплуатации БД. Там много подводных камней о которых ненаписано в умных книжках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2012, 21:11 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Забыл. В таблицу движений добавить id_doc - ИД документа который сделал запись. В остатки добавлять ненужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2012, 21:13 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, спс за отклик. на счет остальные поля, себестоимость, процент накрутки, сумма в у.е., ид_документа, итп есть. их куча. я привел основные. почему не делал приход+ расход- или как некоторые даже делали отдельно приход и отдельно расход, хочу эту програмку поставить и в головной склад и в остальных. нам нужно следить за движение, за определенную дату, от кого кому как сколько.... там идут приход внешний в головной , у точек могут быт свои поставщики по мимо головного склада, друг другу могут отдать товар, и естественно реализация. ща у меня так: Type 0- остаток 1- Приход внешний 2- Приход внутренний 3- Расход внутренний 4- Реализация 5- Переоценка или все таки делать приход+ расход -? операции в день примерно 1000 записей в табл журнал с каждой точки, а точек пока 7. а зачем дата в полном формате, не догнал. если сделаю по дням. операции могут быть задним числом а час мин думал не надо. а заказчик друг. и программеров нету хороших в моем городе.я бы даже бесплатно работал с ними чтоб научиться, если были такие. поэтому форум и мой учитель и друг))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 00:48 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10, Таблички сделать как я описал. Тип движения ненужен в принципе - вы по ИД документа узнаете что это (приход от поставщика, реализация, перемещение, ...). Соответственно документ будет делать две записи в таблицу движения товара при перемещении (с плюсом там где приход на магазин, с минусом там где магазин с которого передали) и одну при прочих операциях по товару. Дата в полном формате что б можно было динамически посчитать остаток на любой момент времени. Т.е. взять остаток на начало периода из таблицы остатка и прибавить все движения до указанного времени. 1000 операций это даже не мелочь - фигня в общем. Думаю период месяц в самый раз и то только из-зи того что много отчетов нужно формировать по месяцу. А почему друг нехочет поставить 1С? Там все это уже реализовано. Или вы делаете свое приложение?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 11:33 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, хорошо, попробую как вы сказали. если понадобиться отчет в такой то день кто кому сколько выдавал, буду джоинить по дате? а если в туже секунду перемещение, как узнаю кто кому? мой вариант с точки зрение нормализации плох или еще с производительность падает? если только нормализация то может оставим? почему не ставит 1С: 1. тут нету программеров 1С и вообще , есть такие как я))))ито мало. 2. купить можно, но кто то должен приехать и поставить, и эксплуатировать некоторое время. 3. хотят под себя, с дальнейшим расширением. 4. если что то надо добавить/изменить, надо будет приехать этому человеку за 4000км) 5. все это очень дорого обойдет. 6. наконец, я то должен практиковаться/развиваться)))) я самоучка, не имею учителя никого кроме Вас-форумчан. начал 2,5-года назад си-шарп, 5-месяцев назад скл. сделал один проектик, справочник для отдела агентство по строительству. работает пока)))). дается все тяжело, медленно развиваюсь, хотя сутками занимаюсь.даже иногда кушать забываю). только инет,электронные книги и ФОРУМ. думаю это лишний рассказ, но как то легче стало мне от рассказа))) спасибо за отклик, это для меня огромная поддержка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 12:10 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Вопрос ниочем. Невидя БД сложно сказать что и как. К тому же я указал лишь шаблон по которому идти, и невидя всей картины немогу судить о правильности или неправильности. Как вариант можете создать у себя БД по вашему ТЗ, а потом попросить людей посмотреть правильно ли вы сделали. Может кто и бесплатно поможет, хотя сомневаюсь. Насчет приехать и поставить это вы товарищи загнули. Установить я думаю проблем небудет. А вопрос поддержки решается удаленным доступом например. У меня около 20 клиентов так обслуживаются, хотя территориально разбросаны. И никто нежалуется, главное вовремя все делать. Попрактиковаться, это как-то ... ну нестрашно вам практиковаться? Людям может и надоесть. Вообще опыта набираются когда работают с теми кто уже знает и умеет. Так что идите в падаваны к опытным товарищам. За год научитесь больше чем за несколько лет самостоятельного метания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 17:43 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, на счет страха, боишься волка в лес не ходи, и к тому же нету у меня выбора. идти к опытным никак, тут нету опытных. куда то поехать, опят же-куда? а так я согласен-по поводу работать с профи и научиться лучше и быстрее. попробую дальше, как получиться так получится))) спс еще раз за ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 18:17 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ZVER-10Злой Бобр, медленно развиваюсь, хотя сутками занимаюсь.даже иногда кушать забываю ты эт осторожно налегай на шоколад белый помогает от C#, горький от SQL, а обычный продвигает архитектурные способности без жратвы фиг разовешься :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 18:40 |
|
||
|
структура БД
|
|||
|---|---|---|---|
|
#18+
ViPRosZVER-10Злой Бобр, медленно развиваюсь, хотя сутками занимаюсь.даже иногда кушать забываю ты эт осторожно налегай на шоколад белый помогает от C#, горький от SQL, а обычный продвигает архитектурные способности без жратвы фиг разовешься :( спс за совет, ща стараюсь) белый не люблю а темный с удовольствием))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2012, 21:14 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=20&tid=1540522]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 264ms |
| total: | 414ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...