Проектирование хранилища данных Сбытовая логистика – Бухгалтерия дебиторов

Имеется предметная область «Сбытовая логистика – Бухгалтерия дебиторов. Предметная область представлена следующим набором сущностей:

Контракт — долгосрочное рамочное соглашение между сторонами; Заказ — краткосрочное соглашение на поставку в рамках контракта, обычно – месячное доп. соглашение; Поставка — товарно — транспортная накладная, документ, отражающий факт поставки по заказу; Фактура — документ, отражающий переход права собственности на поставляемый товар и акцепт Заказчиком дебиторской задолженности. Фактура может выставляться на одну или несколько поставок; Платеж — документ, отражающий факт поступления денег от Заказчика. Платежи могут поступать авансом или по факту поставки в погашение задолженности; Документ выравнивания — документ, отражающий сопоставление данных платежей и фактур, отражает бухгалтерский факт погашения дебиторской задолженности.

1.1 Контракт: Основные характеристики: Период действия (год) Заказчик (Регион, Страна, — «Россия и Белоруссия– СНГ – Дальнее зарубежье»); Продукт – Группа продуктов; Показатели: Объем по договору; Стоимость по договору; Договорная цена позиции Контракта.

1.2 Заказ Содержит уточненный на месяц объем поставки, уточнения по ценам. Наследует характеристики контракта. Кроме того, содержит дополнительные сведения: Период действия заказа (Месяц) Требуемая дата поставки; Показатели: Объем по заказу, Стоимость по заказу; Договорная цена позиции Заказа.

1.3 Поставка Наследует атрибутику заказа, кроме того, содержит следующие признаки: Дата отгрузки (с Предприятия); Дата передачи права собственности (Заказчику). 2 Показатели: Объем поставки; Стоимость поставки.

1.4 Фактура: Наследует атрибутику поставок, кроме того, содержит признаки: Дата фактуры (возникновения дебиторской задолженности); Планируемая дата погашения дебиторской задолженности. Показатели: Объем по фактуре; Стоимость по фактуре.

1.5 Платеж Содержит признаки: Контракт; Заказчик; Дата платежа Показатели: Сумма платежа;

1.6 Документ выравнивания Наследует признаки фактуры и платежа. Кроме того, содержит следующие признаки: Дата выравнивания (погашения дебиторской задолженности) Показатели: Сумма выравнивания.

Схема информационного Хранилища в виде ER – диаграммы.

Будем проектировать хранилище данных в виде ER — диаграммы в программе ERWIN. AllFusion ERwin Data Modeler (ранее ERwin) — CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания.

ERWIN позволяет проектировать диаграмму на логическом и физическом уровне (SQL Server). Создадим 6 сущностей (+ я добил дополнительно сущность клиент), в каждой сущности добавим ключи. Зададим связь.

34
CREATE TABLE [Документ_выравнивания]
(
[Документ_выравнивания] varchar(20)  NOT NULL,
[Сумма_выравнивания] money  NULL ,
[Id_Выравнивания]    integer  NOT NULL ,
[Id_Фактуры]         integer  NULL ,
[id_Платежа]         integer  NULL
)
go

ALTER TABLE [Документ_выравнивания]
ADD CONSTRAINT [XPKДокумент_выравнивания] PRIMARY KEY  CLUSTERED ([Id_Выравнивания] ASC)
go

CREATE TABLE [Заказ]
(
[Период_действия]    date  NOT NULL ,
[Требуемая_дата_поставки] date  NOT NULL ,
[Объем_по_заказу]    integer  NOT NULL ,
[Стоимость_по_заказу] money  NOT NULL ,
[Договорная_цена_по_позиции] money  NOT NULL ,
[Id_Заказа]          integer  NOT NULL ,
[id_Контракта]       integer  NOT NULL
)
go

ALTER TABLE [Заказ]
ADD CONSTRAINT [XPKЗаказ] PRIMARY KEY  CLUSTERED ([Id_Заказа] ASC)
go

CREATE TABLE [Клиент]
(
[id_Контракта]       integer  NOT NULL ,
[Id_Заказа]          integer  NOT NULL ,
[Фамилия]            char(18)  NOT NULL ,
[Имя]                char(18)  NOT NULL ,
[Адрес]              char(18)  NOT NULL ,
[Телефон]            char(18)  NOT NULL ,
[id_Платежа]         integer  NOT NULL ,
[Id_Поставки]        integer  NOT NULL ,
[Id_Фактуры]         integer NOT NULL ,
[Id_Выравнивания]    integer  NOT NULL ,
[id]                 integer  NOT NULL
)
go

ALTER TABLE [Клиент]
ADD CONSTRAINT [XPKКлиент] PRIMARY KEY  CLUSTERED ([id] ASC)
go

CREATE TABLE [Контракт]
(
[id_Контракта]       integer  NOT NULL ,
[Период_действия]    date  NOT NULL ,
[Регион]             varchar(20)  NOT NULL ,
[Продукт]            varchar(20)  NOT NULL ,
[Объем_по_договору]  integer  NOT NULL ,
[Стоимость_по_договору] integer  NOT NULL ,
[Договорная_цена_по_позиции_контракта] integer  NOT NULL
)
go

ALTER TABLE [Контракт]
ADD CONSTRAINT [XPKКонтракт] PRIMARY KEY  CLUSTERED ([id_Контракта] ASC)
go

CREATE TABLE [Платеж]
(
[id_Платежа]         integer  NOT NULL ,
[Контракт]           varchar()  NOT NULL ,
[Заказчик]           varchar()  NOT NULL ,
[Дата_платежа]       date  NOT NULL ,
[Сумма_платежа]      money  NOT NULL
)
go

ALTER TABLE [Платеж]
ADD CONSTRAINT [XPKПлатеж] PRIMARY KEY  CLUSTERED ([id_Платежа] ASC)
go

CREATE TABLE [Поставка]
(
[Дата_отгрузки]      date  NOT NULL ,
[Дата_передачи_права_собственности] date  NULL ,
[Объем_поставки]     integer  NOT NULL ,
[Стоимость_поставки] money NOT NULL ,
[Id_Поставки]        integer  NOT NULL ,
[Id_Заказа]          integer  NOT NULL
)
go

ALTER TABLE [Поставка]
ADD CONSTRAINT [XPKПоставка] PRIMARY KEY  CLUSTERED ([Id_Поставки] ASC)
go

CREATE TABLE [Фактура]
(
[Дата_фактуры]       date  NOT NULL ,
[Планируемая_дата_погашения_дебиторской_задолжности] date NOT NULL,
[Стоимость_по_фактуре] money  NOT NULL ,
[Id_Фактуры]         integer  NOT NULL ,
[Id_Поставки]        integer  NOT NULL
)
go

Перенесем спроектированное хранилище в SQL SERVER.

24

cPy4ifxiZ_4

 

23

На гитхабе https://github.com/aovakur/databasedesign