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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3) Может есть что получше :) ?
...
Рейтинг: 0 / 0
23.10.2007, 16:22
    #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
23.10.2007, 16:24
    #34888552
sergey888
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
история складов
Что это было?
...
Рейтинг: 0 / 0
23.10.2007, 16:29
    #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
23.10.2007, 16:33
    #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
23.10.2007, 16:38
    #34888598
sergey888
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
история складов
Требуется не история продаж за день, а состояние склада на каждый день.
т.е. надо сложить весь приход и вычесть весь расход.
Если база за несколько лет, то такой запрос будет работать несколько дней.
...
Рейтинг: 0 / 0
23.10.2007, 16:51
    #34888633
Sergey Tokarev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
история складов
sergey888Требуется не история продаж за день, а состояние склада на каждый день.
т.е. надо сложить весь приход и вычесть весь расход.
Если база за несколько лет, то такой запрос будет работать несколько дней...
Если не использовать оптимизацию, то да, будет.
...
Рейтинг: 0 / 0
23.10.2007, 16:52
    #34888637
бухой бык
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
история складов
sergey888такой запрос будет работать несколько дней.Чушь - раз. Если этот запрос нужен для отчётов и открываться он будет не чаще раза в день / неделю / месяц, то можно и подождать несколько минут - два. Если ваш бухалтер каждый час будет выщитывать остаток на один и тот же день, на*** такого бухалтера - три.
...
Рейтинг: 0 / 0
23.10.2007, 17:01
    #34888675
sergey888
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
история складов
бухой бык sergey888такой запрос будет работать несколько дней.Чушь - раз. Если этот запрос нужен для отчётов и открываться он будет не чаще раза в день / неделю / месяц, то можно и подождать несколько минут - два. Если ваш бухалтер каждый час будет выщитывать остаток на один и тот же день, на*** такого бухалтера - три.

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

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

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

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


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


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