|
|
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Один из видов деятельности фирмы, где я работаю - продажа интернет-карточек. То есть карточки берутся у неких поставщиков, хранятся на складе, а потом продаются. Причем продается только юридическим лицам. Просто зайти с улицы и купить карточку у нас нельзя. Карточки продаются без определенного порядка - нужно 100 таких и 50 вот таких - просто достают коробки, что ближе лежат. И вот сегодня девочка, к-я занимается всем этим делом, попросила написать программку для учета таких карточек - приход, расход, текущее состояние на складе. В принципе, все. Мое предложение использовать 1С было отвергнуто. Вот теперь сижу и придумываю структуру базы. Пока что придумал вот что: 1) Storageobject_idobject_nameobject_units_idobject_countobject_sale_price хранит остатки на складе - наименование объекта хранения, ед. измерения (ссылка на таблицу-справочник), количество (может быть "0"), цена, назначенная директором для продажи. 2) Unitsunit_short_nameunit_full_nameunit_description это справочник единиц измерений 3) Ordersorder_idorder_object_idorder_countorder_dateorder_invoice_numberorder_company_id это приход товара - наименование товара (ссылка на таблицу Strorage), количество товара, дата, номер накладной, компания-поставщик (ссылка на соотв. таблицу) 3) Salessale_idsale_object_idsale_countsale_datesale_invoice_numbersale_company это расход. структура таблицы аналогична 2). (кстати, может, следует объединить таблицы 2-3?) 4) Companycompany_idcompany_name.... таблица компаний (как поставщиков, так и клиентов) - ее детальная структура на данный момент не интересна. Допустим, закупили 1000 карточек на 10 часов доступа в интернет. Тогда я представляю себе работу программы так: 1) обновляется таблица Storage - если такой объект уже существует, то изменяем поле object_count на купленное количество, иначе - добавляем новую запись; 2) добавляем запись в таблицу Orders; Теперь продаем: 1) обновляем таблицу Storage - вычитаем продаваемое количество из object_count (в итоге может получиться 0); 2) добавляем запись в таблицу Sales. Подскажите, пожалуйста, насколько такая структура жизнеспособна, чего не хватает, что лишнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:08 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
С удовольствием! Фигня это полная, вот! -------------------- Не учи отца и баста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:11 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Не могли бы Вы дать чуток более развернутый ответ? Желательно, с аргументами. Что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:19 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
ИМХО. Если это маленькая локальная програмулька для указанных неизменных условий, то с пивком потянет. Но только для количественного учета. Приход-расход объединить ессно. Цена в Storage - лишнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:34 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Шуткую я так :-) А вообще правила проектирования склада примерно такие: Это регистрация перемещения объекта учета от одного субъекта к другому на основании документа в определенном количестве: Таблица регистрации движения: 1. Товар 2. Документ 3. Ед. изм. (только для конвертации на клиенте) 4. Количество в минимальной единице Таблица документов: 1. Дата 2. Субъект1 (от кого) 3. Субъект2 (кому) остальное опционально Таблицы субъектов, объектов, ед. изм. по желанию. Можно в виде одной таблицы с типизацией записи. -------------------- Не учи отца и баста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:42 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
2Old Nick Фигня полная Контрагентов в документе может быть и больше 2. Надо кросс-таблицу держать. 2p1024 Велосипед изобретаем, господин студент? Советую пойти поработать в какую-нибудь приличную складописательскую контору. Там за годик-другой всему научитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:47 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
В таком случае субъектов хранить в таблице регистрации движения Хотя, если честно, ни разу не сталкивался с числом субъектов в одном документе более двух. -------------------- Не учи отца и баста! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:49 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
p1024Подскажите, пожалуйста, насколько такая структура жизнеспособна, чего не хватает, что лишнее? На первый взляд все нормально. Далее жизнь покажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 16:51 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Old Nick Благодарю за ответ. Постараюсь поправить свою схему. СерегаЦена в Storage - лишнее. Почему? У нас есть цены, утвержденные директором. Я хотел автоматически вставлять эту цену при выписке расходной накладной. Естественно, оставляя возможность изменить этот параметр в каждом конкретном случае - ведь цена может быть установлена одна, а в итоге продадут совсем по другой. (что, собственно, я и наблюдаю) Cripp1024 Велосипед изобретаем, господин студент? Советую пойти поработать в какую-нибудь приличную складописательскую контору. Там за годик-другой всему научитесь. То есть, по-Вашему, если человек изобретает велосипед - это обязательно студент? Когда заканчиваешь ВУЗ, то приходит ВЕЛИКОЕ ОЗАРЕНИЕ? Все задачки решаются в уме? Если у Вас так и было, рад за Вас безмерно. У меня, к сожалению, все гораздо приземленнее. Надо лишь работать и работать - только тогда получается. Что я, собственно, и стараюсь делать. И на форуме спрашиваю чтобы НАУЧИТЬСЯ, а не получить щелчок по носу. .. Может, тогда подкинете готовое решение? Тогда не буду изобретать велосипед. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 22:41 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
p1024Почему? У нас есть цены, утвержденные директором. Я хотел автоматически вставлять эту цену при выписке расходной накладной. Да пожалста. Только цена то меняется. И ты никогда не будешь знать ни по какой цене купил, ни по какой продал. Ты знаешь только цену на сегодня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 09:01 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
p1024Может, тогда подкинете готовое решение? Тогда не буду изобретать велосипед. :)А уже подкинули CripСоветую пойти поработать в какую-нибудь приличную складописательскую контору. Там за годик-другой всему научитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 11:56 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
СерегаДа пожалста. Только цена то меняется. И ты никогда не будешь знать ни по какой цене купил, ни по какой продал. Ты знаешь только цену на сегодня. Не понимаю. Я же храню цену продажи/покупки в "таблицах регистрации движения" ((с) Old Nick )? Поэтому я всегда могу сказать, по какой цене купил, а по какой продал. А цена в Storage - отдельный параметр. Это лишь предписание директора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 12:41 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
p1024Не понимаю. Я же храню цену продажи/покупки в "таблицах регистрации движения" ((с) Old Nick )? Поэтому я всегда могу сказать, по какой цене купил, а по какой продал. Я что-то этого не увидел в структуре. Может смотрел невнимательно? Ну раз есть, значит есть. Тогда согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 13:38 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
В любом случае удобно создать еще и таблицу Прайс-Лист 1. Дата 2. Товар 3. Цена и из нее брать цену по-умолчанию для подстановки в документ с возможностью изменить ее в документе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 14:25 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Old Nick Хм.. Вы правы. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 16:05 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
2Old Nick Например любой трехсторонний договор. Помнится что-то подобное было с договором консигнации. Еще пример, немного вырожденный, это операция которая делает движение сразу по нескольким контрагентам. Допустим продажа товара покупателю с нескольких складов одновременно. Иногда заказчик такое может потребовать. Правда это уже изврат ИМХО. 2p1024 Не хотелось бы вас расстраивать. Но мне почему-то кажется обратись ваш заказчик допустим к какому-нибудь 1С франчайзингу он был бы удовлетворен куда больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2005, 17:07 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
По моему крайне ущербная структура… И потом не надо путать товар и товарные позиции даже если они совпадают…. Напишу только основные отличия. Товар: Имеет закупочную цены в любой валюте, и закупочную в гос знаках (или уе) Имеет ГТД, серийки и т. д. Физически существует и имеет вес размер и т. д. и адрес c номером полки где лежит :) Не содержится в прайс листах Назначение – складской учёт в единицах измерения Должно быть понятие киты и т. п. собираться и разбираться непосредственно на складе… … Товарная позиция: Имеет продажную цены и всякие акции там акции на скидки в гос знаках (или уе) но это только предпологаемые продажные цены… реальные будут в счёте… Содержится в прайс листе и бух документах… Не имеет веса и физ. характеристик… Содержится в прайс листах Может включать в себя произвольное количество товара (если не включает то это работы-услуги или фикция т.е. взаимно зачёты )) ) это и для банглов нужно комплексов … Назначение – бух отчётность в штуках … Если в даваться в складской учет то тут посложнее будет… связано это с учетом товара на нескольких складах нескольких филиальных фирм с несколькими состояниями товара… а также избирательная внутренняя регистрация товара (ведение карточки товара) и проводка его при движении по складу или смена статуса (на статус влияет товарная позиция) В движении товара нельзя хранить цены любые! Это очевидно! Всё что я написал идёт в разрез с этой структурой :( а мы не коснулись механизмов заявок, оплаты а это очень интересные темы… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2006, 16:37 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Приход-расход обязательно нужно объединить в таблицу Движение. И обязательно хранить фактическую продажную и входную цену в ней. 12434. Почему это Вам очевидно, что нельзя хранить цены в Движении? Как раз наоборот. 1. Цены со временем меняются и тогда, если их не хранить в Движении, нужно делать таблицу истории изменения цен. 2. Если в организации есть система скидок и продажная цена не хранится в Движении, то нужно хранить в ней значения скидок. Причем скидки бывают процентные и абсолютные. Это еще два поля в таблице. Итак, если мы не храним цену в Движении, то мы имеем дополнительную таблицу и одно дополнительное поле, по сравнению с вариантом хранения продажной цены в таблице. ======== Склады бывают разные. Не надо пугать человека всякими стелажными местами, многовалютным учетом и выдачей с разных складах. Еще бывают и сроки реализации, и пересортица, и многое другое усложняющее базу. В данном случае склад очень простой и структура вполне работоспособна с учетом замечания о слиянии Прихода и Расхода. Кстати, есть два подхода, как различать в ней приход и расход. Или делать поле-признак, или хранить количество прихода со знаком плюс, а расхода - со знаком минус. Лично я предпочитаю второй вариант. Тогда остаток получается простым суммированием по полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2006, 12:41 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Cat2 wrote: > как различать в ней приход и расход. Или делать поле-признак, или > хранить количество прихода со знаком плюс, а расхода - со знаком минус. > Лично я предпочитаю второй вариант. Тогда остаток получается простым > суммированием по полю. а как Вы различаете сторнирование? -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2006, 14:42 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Зачем на складе сторно? Это же склад, а не бухгалтерия. В общем случае всякие реализационные и нереализационные операции движения различаются по типу документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 07:24 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
locky > Или делать поле-признак, или > хранить количество прихода со знаком плюс, а расхода - со знаком минус. > Лично я предпочитаю второй вариант. Тогда остаток получается простым > суммированием по полю. а как Вы различаете сторнирование? Как вариант признак приход-расход делать 1 и -1 тогда, остаются одни плюсы, можно определить приход это или расход, выделить сторнирующие проводки и посчитать не намного сложнее SUM(oper_sum * deb_or_cred). А на счет того что, "Это же склад, а не бухгалтерия". В первых механизм достаточно универсальный, что бы переписывать его от одной задачи не имеющий сторно к другой ее имеющей. Во вторых лучше перезаложить некую избыточную информацию (не влияющую на объем и скорость обработки), даже если в результате это использоваться не будет, особенно в базовых таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2006, 11:43 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
А как учесть то, что при продаже сначла продают купленный ранее товар (один тип изделия), а потом купленный позже ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2006, 21:28 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
просто нет словыва ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 07:55 |
|
||
|
Покритикуйте структуру базы склада..
|
|||
|---|---|---|---|
|
#18+
Сотрите кто нить предыдущее сообщение, случайно оно. Вообще это очень похоже на задачу №1 в тестах по 1С Я делал так (без учета Единиц измерения товара, думаю не составит труда их сюда добавить. ПОка предположим что всё в 'штуках'). Справочники Склад ид наименование прочие поля описывающие Склад Товар ид наименование прочие поля описывающие Товар Контрагент ид наименование прочие поля описывающие Контрагентов Статус - описывает характер движения (приход расход переброска и т.д.) ид наименование прочие поля описывающие Контрагентов Прайс ид наименование товар - ключ на Товар контрагент - ключ на Контрагент цена дата прочие поля описывающие Прайс Документы Приходная накладная ШАПКА ид - сквозной с расходной накладной дата контрагент - ключ на Контрагент прочие поля необходимы в шапке ТАБЛИЧНАЯ ЧАСТЬ (далее ТЧ) ид документ - ключ на шапку товар - ключь на Товар кол-во цена склад - ключ на Склад прочие поля необходимые для ТЧ Расходная накладная ШАПКА ид - сквозной с приходной накладной дата контрагент - ключ на Контрагент прочие поля необходимы в шапке ТАБЛИЧНАЯ ЧАСТЬ (далее ТЧ) ид документ - ключ на шапку товар - ключь на Товар кол-во - предусмотреть проверку на остаток на складе цена - можно предусмотреть заполнение из прайса склад - ключ на Склад прочие поля необходимые для ТЧ Нужен еще документ Переброска товара - для отражения перемещения между складами. Ну он совсем простой, описывать не буду. Регистр Движения товара склад - ключ на Склад кол-во цена приход-расход - '+' -приход '-' -расход дата - дата движения статус - ключ на Статус документ - ключь на Документы (для этого у них сквозной ИД) прочие поля описывающие конкретное движение Порядок работы документов: Приходная накладная - делает 1 запись на каждую строку ТЧ в регистре с '+' и статусом "Приход". Расходная накладная - делает 1 запись на каждую строку ТЧ в регистре с '-' и статусом "Расход". Переброска - делает 2 записи на каждую строку в ТЧ, одна с "+", другая с "-", статус в обеих записях "Переброска". Остаток на складе = select товар ,колво = sum(case приход-расход when '+' then кол-во else -кол-во end) ,сумма = sum(case приход-расход when '+' then цена else -цена end) from Движения товара where склад = НУЖНЫЙ НАМ СКЛАД and дата <= НУЖНАЯ НАМ ДАТА group by товар вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2006, 08:46 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=32&tid=1545206]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
464ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 786ms |

| 0 / 0 |
