powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / история складов
25 сообщений из 25, страница 1 из 1
история складов
    #34875468
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Передо мной задача: написать максимально простую аппликачку для купли/продажи лесоматериала. Бухгалтер однако, хочет видеть отчёт по складам (историю) на любой день. Количество складов - переменная величина, т.е. могут добавляться юзером.

Посовейтуйте пожалуйста, по какому пути лучше пойти:

1) Каждый день делать снапшот

2) Усложнить запрос / структуру базы, напр. учитывать все даты (приёмки, межскладских перемещений, продажи).

3) Может есть что получше :) ?
...
Рейтинг: 0 / 0
история складов
    #34875635
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А давайте я Вам это напишу. недорого. от 10 тыщ. руб.

Только с Вас ТЗ.
...
Рейтинг: 0 / 0
история складов
    #34875998
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т3 не маем, но спасибо за предложение :) Прошу ко мне на demo-cracy()yandex.ru

Я хочу испытать свои силы на ниве програмизма, т.к. толком ничего в жизни пока не написал. Это мой первый проект так сказать... Поддержите!
...
Рейтинг: 0 / 0
история складов
    #34876056
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafА давайте я Вам это напишу. недорого. от 10 тыщ. руб.

Только с Вас ТЗ.

Наверняка еще надо будет переброску между складами делать, инвентаризацию, и еще кучу всякой отчетности.
10 тыс в месяц без отрыва от работы - это вариант...
...
Рейтинг: 0 / 0
история складов
    #34876115
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888 NafА давайте я Вам это напишу. недорого. от 10 тыщ. руб.

Только с Вас ТЗ.

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

Конечно без отрыва, я ж не собираюсь ехать в Нижне-Бобруйск :-)
И потом, опыт автоматизации есть в 1С, но честно уже тошнит от желто-красных
Вот и хочется нечто нативного
...
Рейтинг: 0 / 0
история складов
    #34876117
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДемократТ3 не маем, но спасибо за предложение :) Прошу ко мне на demo-cracy()yandex.ru

Я хочу испытать свои силы на ниве програмизма, т.к. толком ничего в жизни пока не написал. Это мой первый проект так сказать... Поддержите!

Тогда чем Вас поддержать?
...
Рейтинг: 0 / 0
история складов
    #34881979
dante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888 NafА давайте я Вам это напишу. недорого. от 10 тыщ. руб.

Только с Вас ТЗ.

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

За складскую программу 10 тыс.руб./мес.! Это же демпинг! Вы что!
...
Рейтинг: 0 / 0
история складов
    #34881981
dante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме: на чем собираетесь писать клиента?
...
Рейтинг: 0 / 0
история складов
    #34882028
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dante77По теме: на чем собираетесь писать клиента?

Это вы у кого спрашиваете?
...
Рейтинг: 0 / 0
история складов
    #34882200
dante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У автора темы
...
Рейтинг: 0 / 0
история складов
    #34888469
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dante77По теме: на чем собираетесь писать клиента?

.NET 2.0, C#.
...
Рейтинг: 0 / 0
история складов
    #34888521
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем обоснован такой выбор?
...
Рейтинг: 0 / 0
история складов
    #34888532
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДемократПередо мной задача: написать максимально простую аппликачку для купли/продажи лесоматериала. Бухгалтер однако, хочет видеть отчёт по складам (историю) на любой день. Количество складов - переменная величина, т.е. могут добавляться юзером.

Посовейтуйте пожалуйста, по какому пути лучше пойти:

1) Каждый день делать снапшот

Это не очень универсальное, имхо, решение, тк бухгалтер может захотеть видеть отчет с какого-то времени дня.

2) Усложнить запрос / структуру базы, напр. учитывать все даты (приёмки, межскладских перемещений, продажи).

Это, как мне кажется, самый оптимальный вариант. И он достаточно несложен, особенно, если нет необходимости в сильной детализации (цены, поставщики и т.п.). Хотя даже в случае, если она есть, все равно не очень сложно.

3) Может есть что получше :) ?
...
Рейтинг: 0 / 0
история складов
    #34888545
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего умнее придумать не смог... По идее, должно сработать (для отчёта "история складов"):

Код: plaintext
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.
-- 1. история транзакций

CREATE TABLE [dbo].[StockHistory](
	[ID] [int] IDENTITY( 1 , 1 ) NOT NULL,
	[ProductID] [int] NULL,
	[StockDate] [datetime] NULL,
	[StockID] [tinyint] NULL,
 CONSTRAINT [PK_StockHistory] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

-- 2. выборка ProductID в день Х

CREATE FUNCTION fnProductStockInThePast 
(		
	@NeededDate datetime	
)
RETURNS TABLE 
AS
RETURN 
(
	select sh.* from StockHistory sh
	join 
	(
		select ProductID, MAX(StockDate) AS LastDate
		from StockHistory 
		where StockDate <= @NeededDate
		group by ProductID
	) as ld on ld.LastDate = sh.StockDate

)
GO
...
Рейтинг: 0 / 0
история складов
    #34888552
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что это было?
...
Рейтинг: 0 / 0
история складов
    #34888569
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, в таком виде хранить таблицу документов

Код: plaintext
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.
-- Документ. Шапка
CREATE TABLE [DOCUMENT].[Document](
	[ID] [uniqueidentifier] NOT NULL PRIMARY KEY  DEFAULT (newid()),
	[Number] [nvarchar]( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL,
	[DocType] [nvarchar]( 30 ) COLLATE Cyrillic_General_CI_AS NOT NULL,
	[ClientID] [uniqueidentifier] NOT NULL,
	[DocumentSum] [numeric]( 12 ,  2 ) NOT NULL,
	[DocumentDate] [datetime] NOT NULL,
	[WarehouseID] [uniqueidentifier] NOT NULL,
	[ManagerID] [uniqueidentifier] NOT NULL,
	[Description] [nvarchar]( 500 ) COLLATE Cyrillic_General_CI_AS NULL,
	[State] [nvarchar]( 30 ) COLLATE Cyrillic_General_CI_AS NOT NULL CONSTRAINT [DF_Document_State]  DEFAULT ('NOTRUN'),
) 

--Документ. Детальная часть
CREATE TABLE [DOCUMENT].[DocumentLine]
(
	[ID] [uniqueidentifier] NOT NULL PRIMARY KEY DEFAULT (newid()),
	[DocumentID] [uniqueidentifier] NOT NULL,
	[Number] [int] NOT NULL,
	[ProductID] [uniqueidentifier] NOT NULL,

	[ProductCount] [int] NOT NULL,
	[BookUnitPrice] [numeric]( 12 ,  2 ) NOT NULL,
	[ActualUnitPrice] [numeric]( 12 ,  2 ) NOT NULL,
	[ActualTotalPrice] [numeric]( 12 ,  2 ) NOT NULL) 
)
...
Рейтинг: 0 / 0
история складов
    #34888585
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и отчет "История продаж по складам за день"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT 
	D.DocumentDate,
	D.WarehouseID,
	DL.ProductID,
	DL.ProductCount
FROM 
	DOCUMENT.Document AS D INNER JOIN 
	DOCUMENT.DocumentLine AS DL ON D.ID = DL.DocumentID
WHERE
	D.DocumentDate BETWEEN '20071023' AND '20071024'
ORDER BY D.DocumentDate 
...
Рейтинг: 0 / 0
история складов
    #34888598
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Требуется не история продаж за день, а состояние склада на каждый день.
т.е. надо сложить весь приход и вычесть весь расход.
Если база за несколько лет, то такой запрос будет работать несколько дней.
...
Рейтинг: 0 / 0
история складов
    #34888633
Sergey Tokarev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888Требуется не история продаж за день, а состояние склада на каждый день.
т.е. надо сложить весь приход и вычесть весь расход.
Если база за несколько лет, то такой запрос будет работать несколько дней...
Если не использовать оптимизацию, то да, будет.
...
Рейтинг: 0 / 0
история складов
    #34888637
Фотография бухой бык
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888такой запрос будет работать несколько дней.Чушь - раз. Если этот запрос нужен для отчётов и открываться он будет не чаще раза в день / неделю / месяц, то можно и подождать несколько минут - два. Если ваш бухалтер каждый час будет выщитывать остаток на один и тот же день, на*** такого бухалтера - три.
...
Рейтинг: 0 / 0
история складов
    #34888675
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бухой бык sergey888такой запрос будет работать несколько дней.Чушь - раз. Если этот запрос нужен для отчётов и открываться он будет не чаще раза в день / неделю / месяц, то можно и подождать несколько минут - два. Если ваш бухалтер каждый час будет выщитывать остаток на один и тот же день, на*** такого бухалтера - три.

Конечно, если в год 2-3 тыс накладных, то быстро будет работать.
А если в год 20-30 тыс накладных и в каждой 100 позиций номенклатуры, и база данных за 5 лет, то можете себе представить расчет состояния склада на любую дату любого года.
...
Рейтинг: 0 / 0
история складов
    #34888736
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergey888Чем обоснован такой выбор?

Это единственное на чём я умею :) И вообще - я не программист, а так, балуюсь...
...
Рейтинг: 0 / 0
история складов
    #34888773
Демократ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sergey888такой запрос будет работать несколько дней

У нас где-то 2000 накладных в год. Так что по-всякому будет быстро работать.

Sergey TokarevНапример, в таком виде хранить таблицу документов


Спасибо!
...
Рейтинг: 0 / 0
история складов
    #34888810
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С такими объемами можно все вести в Excel.
...
Рейтинг: 0 / 0
история складов
    #34888822
dante77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни фига себе! Балуетесь на С#?! Обычно для баловства выбирают что-нибудь попроще, типа VBA.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / история складов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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