|
|
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Имеем: Одна Категория Вино-водочного изделия имеет много Наименований изделий (1:М). Пример:Категория - Водка имеет много наименований (Водка пшеничная, Водка анисовая, Абсент); категория-Коньяк (Коньяк армянский, Коньяк французский). Один Магазин имеет много Наименований водки, а одно Наименование водки может находиться во многих магазинах. То есть связь многие ко многим (М:М). Значит связующие таблицы будут Приход и Расход и Остатки. Или Приход и Расход в одну таблицу объединить, сделав столбец Операция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:20 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Во-первых, делай срезу дерево категорий чтобы потом не было мучительно больно. Во-вторых, таки да, приход-расход это одна таблица движений товара. В-третьих, не делай таблицу остатков пока совсем уж не прижмёт, с ней хлопот не оберёшься. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 22:46 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВо-первых, делай срезу дерево категорий чтобы потом не было мучительно больно. Во-вторых, таки да, приход-расход это одна таблица движений товара. В-третьих, не делай таблицу остатков пока совсем уж не прижмёт, с ней хлопот не оберёшься. А в какую таблицу тогда поле остатков делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 23:08 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
ВыcпрошайкаА в какую таблицу тогда поле остатков делать? Ни в какую. Считай их на лету как сумму оборотов пока железо будет справляться. К этому моменту ты поднаберёшься достаточно опыта чтобы провести денормализацию правильно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 23:15 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВыcпрошайкаА в какую таблицу тогда поле остатков делать? Ни в какую. Считай их на лету как сумму оборотов пока железо будет справляться. Что-то не пойму. Так вывод числа остатка надо где-то показать. Где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 23:39 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
ВыcпрошайкаТак вывод числа остатка надо где-то показать. Где? Где надо, там о показывай. Какое отношение показ информации имеет к её хранению? Правильный ответ - никакого. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2014, 23:48 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВо-первых, делай срезу дерево категорий чтобы потом не было мучительно больно. Имеется ввиду например: 1CategoryIDCategoryIDP Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 00:21 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Есть несколько способов хранения дерева в БД, выбор конкретного зависит от условий выборки, размеров и других требований. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 01:51 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Выcпрошайка, Если для курсовой и только проект , то оставляй как есть... покатит... реализуемо... По поводу вопросов: ВыcпрошайкаИли Приход и Расход в одну таблицу объединить, сделав столбец Операция? - довольно спорно... с одной стороны удобно - два разреза в одном месте и можно одним запросом посчитать вычисляемый остаток за период, но если работать в режиме онлайн то при розничной продаже (в расходе) будет болтаться под ногами весь приход, и наоборот - в приходе будет болтаться под ногами вся продажа - отсюда возможны тормоза... есть семечки удобнее из посуды в которой только семечки, а не из той, в которой семечки с сухим горохом в перемешку... ВыcпрошайкаА в какую таблицу тогда поле остатков делать? Если таблицы остатков нет - то можно посчитать остатки запросами на лету и вывести в форму или отчет: весь приход в магазин за период минус весь расход за период... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 02:01 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВыcпрошайкаА в какую таблицу тогда поле остатков делать? Ни в какую. Считай их на лету как сумму оборотов пока железо будет справляться. К этому моменту ты поднаберёшься достаточно опыта чтобы провести денормализацию правильно. То бишь достаточно, чтобы сделать таблицу остатков :). Чего сразу-то не сделать? Учитывая что первые шаги выглядят очень вменяемо... Только в остаток лучше добавить поле "Дата остатка" и признак "Актуальный"... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 02:27 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
АнатоЛойТо бишь достаточно, чтобы сделать таблицу остатков :). Чего сразу-то не сделать? Потому что сейчас он не сможет сделать её правильно. Т.е. стабильной при многопользовательской нагрузке и не вызывающей взаимоблокировок. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 12:12 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАнатоЛойТо бишь достаточно, чтобы сделать таблицу остатков :). Чего сразу-то не сделать? Потому что сейчас он не сможет сделать её правильно. Т.е. стабильной при многопользовательской нагрузке и не вызывающей взаимоблокировок. Откуда мнение про "многопользовательскую нагрузку" и "взаимоблокировки"? ТС даже про СУБД ничего не говорил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 23:03 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Вот кажется так должно выглядеть, с учетом ваших замечаний. Проверю вот только в субботу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 23:46 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
АнатоЛойDimitry Sibiryakovпропущено... Потому что сейчас он не сможет сделать её правильно. Т.е. стабильной при многопользовательской нагрузке и не вызывающей взаимоблокировок. Откуда мнение про "многопользовательскую нагрузку" и "взаимоблокировки"? ТС даже про СУБД ничего не говорил... MS SQL Express 2012 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 23:47 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
АнатоЛойОткуда мнение про "многопользовательскую нагрузку" и "взаимоблокировки"? Один пользователь не набьёт такую кучу данных чтобы понадобилась денормализация в виде хранимых агрегатов. Обычное, простейшее ведение хранимых агрегатов триггерами означает сериализацию доступа к таблице этих агрегатов. У большинства СУБД это вызывает конвульсии в виде блокировок (в том числе и при откате транзакций). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2014, 23:49 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
ВыcпрошайкаПоправил Может поправил, а может испортил... Перспективные возможные плюхи и недочеты к тому, что ты поправил: 1. Ну раз у тебя в Изделии есть Остаток (это хорошо - имеешь цифру без пересчета), то почему нет там Пришло и Продано по такому же принципу (чтоб тоже пересчет не делать) + будет быстрый контроль: Пришло - Ушло = Остаток... 2. Представь теперь, что тебе твою движуху нужно привязать к документам: Приход к накладной (Дата, №, Поставщик), а Расход к Чеку (Дата, №, Время, Дисконтная карта, продавец, и т.д.).... У накладных номера идут от Поставщиков (АД-2014-75634), а у Чеков это от № 1 в начале смены и до .... и так каждый день от №1 и до... конца смены... 3. Расход бывает: Продажа, Брак, Списание, Возврат Поставщику, Кража, Подарки, .... Причем это так... мелкие брызги... на твой рукописный шедевр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 01:28 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovВ-третьих, не делай таблицу остатков пока совсем уж не прижмёт, с ней хлопот не оберёшься. Эт почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 09:09 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Выcпрошайка, я вот не очень понял изменения задачи... Изначально считали остатки по магазинам, сейчас же есть только общий остаток без возможности просмотра по каждому магазину в отдельности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 09:34 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
vmagВыcпрошайкаПоправил Может поправил, а может испортил... Перспективные возможные плюхи и недочеты к тому, что ты поправил: 1. Ну раз у тебя в Изделии есть Остаток (это хорошо - имеешь цифру без пересчета), то почему нет там Пришло и Продано по такому же принципу (чтоб тоже пересчет не делать) + будет быстрый контроль: Пришло - Ушло = Остаток... 2. Представь теперь, что тебе твою движуху нужно привязать к документам: Приход к накладной (Дата, №, Поставщик), а Расход к Чеку (Дата, №, Время, Дисконтная карта, продавец, и т.д.).... У накладных номера идут от Поставщиков (АД-2014-75634), а у Чеков это от № 1 в начале смены и до .... и так каждый день от №1 и до... конца смены... 3. Расход бывает: Продажа, Брак, Списание, Возврат Поставщику, Кража, Подарки, .... Причем это так... мелкие брызги... на твой рукописный шедевр... 1)Как нет? В таблице Изделия есть вычисляемое свойство ФактическийОстаток, который вычисляется как КоличествоПрихода - КоличествоРасхода из таблицы ДвижениеИзделия 2,3) Я знаю что такое расход, но мне пока кроме абстрактного убытия изделия ничего не надо. Документов тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 09:50 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
еще: Приход и расход он разный бывает Отправка не проданной продукции в другой магазин (или возврат поставщику) это что? Возврат продукции покупателем это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 09:53 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineВыcпрошайка, я вот не очень понял изменения задачи... Изначально считали остатки по магазинам, сейчас же есть только общий остаток без возможности просмотра по каждому магазину в отдельности... Это вычисляемое свойство. Оно будет считаться методом, типа: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 09:54 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
dma_caviarЭт почему? А как работает MS SQL в следующей ситуации? 1) Транзакция 1 изменила остаток на +100500 2) Транзакция 2 изменила остаток на -100500 3) Транзакция 2 закоммитилась 4) Транзакция 1 откатилась Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:21 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Выcпрошайка, однако я так и не уловил момента почему отказались хранить остатки товара по каждому магазину (и теперь их надо будет рассчитывать), а общие остатки хранить будем. Их также можно рассчитывать в случае необходимости, запрос будет отличаться только тем, что в group by будет отсутствовать id магазина ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 12:43 |
|
||
|
Просветите по схеме
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineВыcпрошайка, однако я так и не уловил момента почему отказались хранить остатки товара по каждому магазину (и теперь их надо будет рассчитывать), а общие остатки хранить будем. Их также можно рассчитывать в случае необходимости, запрос будет отличаться только тем, что в group by будет отсутствовать id магазина Не отказался. Сам пока не знаю что получится, потому что не могу сейчас попробовать эту новую схему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38639266&tid=1540878]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 16ms |
| total: | 285ms |

| 0 / 0 |

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