Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Очередной склад (приход-расход, оборотная ведомость) / 4 сообщений из 4, страница 1 из 1
11.05.2008, 23:05
    #35305405
Granata005
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной склад (приход-расход, оборотная ведомость)
Покритикуйте немножечко (именно немножечко, т.к. это всего-лишь бакалаврская работа в задрипанном университете).

Интересует насколько некрасива такая денормализация и ЧТО желательно, всё таки, немножко нормализировать...?

Планируется динамическое вычисление оборотно-сальдовой ведомости при помощи JOIN (тоже в раздумьях: UNION / JOIN ...)

Диаграмма в файле.

Код: 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.
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.
CREATE TABLE [dbo].[Sklad] (
	[ID_sklad] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Naim_sklad] [nvarchar] ( 100 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[MOL] (
	[ID_MOL] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Tab_nomer] [int] NOT NULL ,
	[FIO_mol] [nvarchar] ( 200 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Sklad_otn] [int] NOT NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Tmc] (
	[ID_tmc] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[KOD_tmc] [bigint] NOT NULL ,
	[Naim_tmc] [nvarchar] ( 100 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[Polnoe_naim] [ntext] COLLATE Cyrillic_General_CI_AS NULL ,
	[Ed_izmer] [int] NULL ,
	[Tmc_count] [int] NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[Counts] (
	[ID_count] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[KOD_count] [bigint] NOT NULL ,
	[Naim_count] [nvarchar] ( 100 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Ed_izm] (
	[ID_izm] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Naim_izm] [nvarchar] ( 50 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[Polnoe_naim_izm] [nvarchar] ( 1000 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Kontragents] (
	[ID_KONT] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[ID_1C] [int] NOT NULL ,
	[Naim] [char] ( 30 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
	[EGRPOU] [char] ( 15 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[INN] [char] ( 20 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[Telefon] [char] ( 20 ) COLLATE Cyrillic_General_CI_AS NULL ,
	[Deleted] [bit] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Prihod_shapka] (
	[ID_Shapka] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Deleted] [bit] NULL ,
	[Checked] [bit] NULL ,
	[Date_p] [datetime] NOT NULL ,
	[Kontrag_kod] [int] NOT NULL ,
	[Sklad_kod] [int] NOT NULL ,
	[Mol_kod] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Prihod_stroki] (
	[ID_prihod_str] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[TMC_kod] [int] NOT NULL ,
	[Ed_izm_id] [int] NOT NULL ,
	[Count_id] [int] NOT NULL ,
	[Kol] [float] NULL ,
	[Price] [float] NULL ,
	[ID_prihod_shap] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Rashod_shapka] (
	[ID_Shapka] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[Deleted] [bit] NULL ,
	[Checked] [bit] NULL ,
	[Date_r] [datetime] NOT NULL ,
	[Kontrag_kod] [int] NOT NULL ,
	[Sklad_kod] [int] NOT NULL ,
	[Mol_kod] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Rashod_stroki] (
	[ID_rashod_str] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[TMC_kod] [int] NOT NULL ,
	[Ed_izm_id] [int] NOT NULL ,
	[Count_id] [int] NOT NULL ,
	[Kol] [float] NULL ,
	[Price] [float] NULL ,
	[ID_rashod_shap] [int] NOT NULL 
) ON [PRIMARY]
GO


...
Рейтинг: 0 / 0
21.05.2008, 00:04
    #35324742
Роман Дынник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной склад (приход-расход, оборотная ведомость)
на первый взгляд, не вижу таблиц-регистров учета (аля olap).
В учетных системах остатки не вычисляются динамически, а хранятся на начало/окончание периода (год/мес/день/час...).
Остаток на текущую дату = остаток на начало периода + обороты за период.
Если таких понятий не ввести, а вычислять остатки динамически только по приходу и расходу - это потенциальная катастрофа для производительности.
...
Рейтинг: 0 / 0
21.05.2008, 09:47
    #35325130
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной склад (приход-расход, оборотная ведомость)
а что такое таблица Counts?
С уважением, Naf
...
Рейтинг: 0 / 0
22.05.2008, 20:30
    #35329864
Granata005
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной склад (приход-расход, оборотная ведомость)
Роман Дынникна первый взгляд, не вижу таблиц-регистров учета (аля olap).
В учетных системах остатки не вычисляются динамически, а хранятся на начало/окончание периода (год/мес/день/час...).
Остаток на текущую дату = остаток на начало периода + обороты за период.
Если таких понятий не ввести, а вычислять остатки динамически только по приходу и расходу - это потенциальная катастрофа для производительности.
Это я всё понимаю :) но производительность на данном этапе не важна... на 5-ом курсе сделаю с регистрами :)

Nafа что такое таблица Counts?
С уважением, NafСчёт учёта материала...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Очередной склад (приход-расход, оборотная ведомость) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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