powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как спроектировать БД
18 сообщений из 18, страница 1 из 1
Как спроектировать БД
    #37964951
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача следующая:
Наименование показателя| Ед.изм|план месячный|факт месяч.|Факт-план мес. | план сутки | факт сутки | факт-план сутки
------------------------------------------------------------------------------------------------------------------------------------
Общая по организации
Строка 1 т. 100 101 90 10 11 +1
Строка 1-1 т. 50 51 45 5 6 +1
Строка 1-2 т. 50 50 45 5 5 0
Строка 2 кг 450 и тд
Строка 3 шт 10 и тд
Строка 4 кг 50 и тд
Строка 5 пусто пустооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
строка 5-1 кг. 10 и тд
строка 5-2 кг. 10 и тд
Филиал 1
Строка 1 т. 100 101 90 10 11 +1
Строка 1-1 т. 50 51 45 5 6 +1
Строка 1-2 т. 50 50 45 5 5 0
Строка 2 кг 450 и тд
Строка 3 шт 10 и тд
Строка 4 кг 50 и тд
Строка 5 пусто пустооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
строка 5-1 кг. 10 и тд
строка 5-2 кг. 10 и тд
Филиал 2
Строка 1 т. 100 101 90 10 11 +1
Строка 1-1 т. 50 51 45 5 6 +1
Строка 1-2 т. 50 50 45 5 5 0
Строка 2 кг 450 и тд
Строка 3 шт 10 и тд
Строка 4 кг 50 и тд
Строка 5 пусто пустооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо
строка 5-1 кг. 10 и тд
строка 5-2 кг. 10 и тд

Если единица измерений у головного показателя пустая то нижние строки не суммируются.
Для каждого филиала показатели могут различаться.
Филиалы могут быть разбиты на подфилиалы.
Некоторые показатели усредняются в зависимости от единицы измерений.
Также это разбито на филиалы и обобщаются в целом по организации.
Пользователь желает заводить новые показатели и филиалы без привлечения программиста.
Помогите спроектировать такую БД.
Заранее благодарю
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37965951
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,

table1 (id, name, id_vl) Филиал (ИД, наименование, ид владельца)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t3, id_t2, pm, fm, ps, fs) План и фак по показателям (ид, показатель, ед, план мес, факт мес, план сутки, факт сутки)

Ед измерения возможно даже объединить с table3 (id, name, id_t2) , тогда последняя таблица будет более "правильной". Показатели дельты между планом и фактом являются вычисляемыми величинами и в БД нехранятся. Если люди захотят календарный план то структура будет немного другая. Если захотят еще и изменять, видя историю - сколько было плана и на сколько поменяли, также структура будет другой. Все это нужно выяснять до того как строить БД.
Удачи вам.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37965994
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобр,

Код: sql
1.
2.
3.
4.
table1 (id, name, id_vl) Филиал (ИД, наименование, ид владельца)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t3, id_t2, pm, fm, ps, fs) План и фак по показателям (ид, показатель, ед, план мес, факт мес, план сутки, факт сутки)



Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя).
И добавил бы "ид филиала" в table4.
Нет?
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37966095
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDRЗлой Бобр,

Код: sql
1.
2.
3.
4.
table1 (id, name, id_vl) Филиал (ИД, наименование, ид владельца)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t3, id_t2, pm, fm, ps, fs) План и фак по показателям (ид, показатель, ед, план мес, факт мес, план сутки, факт сутки)



Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя).
И добавил бы "ид филиала" в table4.
Нет?

А вот так правильно:
table1 (id, name, id_parent) Филиал (ИД, наименование, ид парент)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t1, id_t2, id_t3, date_beg, date_end, sort_order) Показатели+филиалы история(ид, ид_показатели, ид_едизм, дата_начало_действия, дата_окончания_действия, сортировка)
table5 (id, id_t4 , year, month, plan_month_value) Таблица планов (ид, ид_показатели_филиалы_история(t4),год,месяц, значение месячного плана)
table6 (id, id_t4 , fs) факт по показателям (ид, ид_показатели_филиалы_история (t4), факт сутки)
Остальное view и хранимые процедуры.
Прошу Ваших замечаний
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37966434
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDRЯ бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя). По идее нет необходимости.
И добавил бы "ид филиала" в table4. Да. Стопудово. Просто сходу писал, поэтому и прохлопал.

Dako aka 3L33TА вот так правильно:...
Ну для этого нада знать все ТЗ и специфику. В общих чертах может и подойдет, а конкретно - тебе видней. Есдинственное непонятно с сортировкой - нафига она там?..
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37966514
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сортировка для наименований показателей для каждого филиала своя
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37966595
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33Tсортировка для наименований показателей для каждого филиала своя
Это как? Пример можно ...
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37966700
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
А вот так правильно:
table1 (id, name, id_parent) Филиал (ИД, наименование, ид парент)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t1, id_t2, id_t3, date_beg, date_end, sort_order) Показатели+филиалы история(ид, ид_показатели, ид_едизм, дата_начало_действия, дата_окончания_действия, сортировка)
table5 (id,id_t4, year, month, plan_month_value) Таблица планов (ид, ид_показатели_филиалы_история(t4),год,месяц, значение месячного плана)
table6 (id, id_t4, fs) факт по показателям (ид, ид_показатели_филиалы_история (t4), факт сутки)
Остальное view и хранимые процедуры.
Прошу Ваших замечаний 



Мне нравится. Не нашел к чему придраться:)
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37977461
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗАДАЧА ТЕПЕРЬ УСЛОЖНИЛОСЬ ТЕПЕРЬ ПРОСЯТ ЧТОБ НАИМЕНОВАНИЕ ПОКАЗАТЕЛЕЙ СУММИРОВАТЬ, ОТНИМАТЬ ТИПА В ЭКСЕЛЕ
Пример: показатель1 строки1 филиала1 +сумма(показатель2 строки 3 филиала 2) - среднее(показатель 3 филиала 3)
Как такое спроектировать пока мне непонятно
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37977543
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33TDirksDRЗлой Бобр,

Код: sql
1.
2.
3.
4.
table1 (id, name, id_vl) Филиал (ИД, наименование, ид владельца)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t3, id_t2, pm, fm, ps, fs) План и фак по показателям (ид, показатель, ед, план мес, факт мес, план сутки, факт сутки)



Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя).
И добавил бы "ид филиала" в table4.
Нет?

А вот так правильно:
table1 (id, name, id_parent) Филиал (ИД, наименование, ид парент)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t1, id_t2, id_t3, date_beg, date_end, sort_order) Показатели+филиалы история(ид, ид_показатели, ид_едизм, дата_начало_действия, дата_окончания_действия, сортировка)
table5 (id, id_t4 , year, month, plan_month_value) Таблица планов (ид, ид_показатели_филиалы_история(t4),год,месяц, значение месячного плана)
table6 (id, id_t4 , fs) факт по показателям (ид, ид_показатели_филиалы_история (t4), факт сутки)
Остальное view и хранимые процедуры.
Прошу Ваших замечаний
Не правильно:) Потому что требования будут меняться и расширяться в такого рода проектах. Например, неизбежно появятся типы (не просто Расход денег, а по статьям: на то-то и на то-то). То есть, у показателей добавятся измерения (и вовсе не обязательно, что одинаковые для всех показателей). Потом возникнет вопрос с вычислениями производных показателей. И т.п.
Вы сейчас находитесь на этапе написания терминов и определений. Вот этим и нужно заниматься. Что такое "показатель". И т.д.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37977638
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаDako aka 3L33Tпропущено...


А вот так правильно:
table1 (id, name, id_parent) Филиал (ИД, наименование, ид парент)
table2 (id, name) Ед измерения (ид, наименование)
table3 (id, name) Показатели (ид, наименование)
table4 (id, id_t1, id_t2, id_t3, date_beg, date_end, sort_order) Показатели+филиалы история(ид, ид_показатели, ид_едизм, дата_начало_действия, дата_окончания_действия, сортировка)
table5 (id, id_t4 , year, month, plan_month_value) Таблица планов (ид, ид_показатели_филиалы_история(t4),год,месяц, значение месячного плана)
table6 (id, id_t4 , fs) факт по показателям (ид, ид_показатели_филиалы_история (t4), факт сутки)
Остальное view и хранимые процедуры.
Прошу Ваших замечаний
Не правильно:) Потому что требования будут меняться и расширяться в такого рода проектах. Например, неизбежно появятся типы (не просто Расход денег, а по статьям: на то-то и на то-то). То есть, у показателей добавятся измерения (и вовсе не обязательно, что одинаковые для всех показателей). Потом возникнет вопрос с вычислениями производных показателей. И т.п.
Вы сейчас находитесь на этапе написания терминов и определений. Вот этим и нужно заниматься. Что такое "показатель". И т.д.
А Ваши конкретные предложения из чего состоят, я Вас не понял как реализовать похожий на Excel вариант. Как создать структуру для реализации пожеланий заказчика?
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37977681
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33TБредятинаНе правильно:) Потому что требования будут меняться и расширяться в такого рода проектах. Например, неизбежно появятся типы (не просто Расход денег, а по статьям: на то-то и на то-то). То есть, у показателей добавятся измерения (и вовсе не обязательно, что одинаковые для всех показателей). Потом возникнет вопрос с вычислениями производных показателей. И т.п.
Вы сейчас находитесь на этапе написания терминов и определений. Вот этим и нужно заниматься. Что такое "показатель". И т.д.
А Ваши конкретные предложения из чего состоят, я Вас не понял как реализовать похожий на Excel вариант. Как создать структуру для реализации пожеланий заказчика?
Вот видите, появилось новое требование:) "Реализовать похожий на Excel вариант".
Я же написал конкретное предложение - дать определение показателю и определиться с его моделью. Могут быть разные измерения (разрезы) у показателей (выше я привел пример)? Что Вы будете делать, если появится показатель значения которого нужно собирать еженедельно по понедельникам, а не ежесуточно? А если помимо плана и факта появится прогноз? И т.д.
Посмотрите из чего состоит описание показателя, например, на fedstat.ru.
У Вас оно состоит только из наименования. Просто убедитесь, что этого будет достаточно. У меня нет ощущения, что Вы в этом уверены.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37977842
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,
Код: sql
1.
2.
3.
ЗАДАЧА ТЕПЕРЬ УСЛОЖНИЛОСЬ ТЕПЕРЬ ПРОСЯТ ЧТОБ НАИМЕНОВАНИЕ ПОКАЗАТЕЛЕЙ СУММИРОВАТЬ, ОТНИМАТЬ ТИПА В ЭКСЕЛЕ
Пример: показатель1 строки1 филиала1 +сумма(показатель2 строки 3 филиала 2) - среднее(показатель 3 филиала 3) 
Как такое спроектировать пока мне непонятно 



Задача большая и сложная, есть готовая система по ссылке:
http://www.asuproject.ru/products/ois-usoi

Ориентирована на показатели, расчет производных показателей и т.д.. Свой язык описания формул, отслеживается зависимость расчетных показателей от исходных, агрегация значений показателя, управление полномочиями, аудит и т.д..
У нас в промышленной эксплуатации 4 года.
Большинство хотелок пользователей удается реализовать настройкой показателей и формул.
Удобно вводить данные сразу в определенные ячейки отчетов (Excel), либо через формы ввода (грид, Excel).
Настройка отчетов и расчетов для конечного пользователя слишком сложна, делается службой техподдержки. СУБД Оракл.
Дорого.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37978005
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DirksDRDako aka 3L33T,
Код: sql
1.
2.
3.
ЗАДАЧА ТЕПЕРЬ УСЛОЖНИЛОСЬ ТЕПЕРЬ ПРОСЯТ ЧТОБ НАИМЕНОВАНИЕ ПОКАЗАТЕЛЕЙ СУММИРОВАТЬ, ОТНИМАТЬ ТИПА В ЭКСЕЛЕ
Пример: показатель1 строки1 филиала1 +сумма(показатель2 строки 3 филиала 2) - среднее(показатель 3 филиала 3) 
Как такое спроектировать пока мне непонятно 



Задача большая и сложная, есть готовая система по ссылке:
http://www.asuproject.ru/products/ois-usoi

Ориентирована на показатели, расчет производных показателей и т.д.. Свой язык описания формул, отслеживается зависимость расчетных показателей от исходных, агрегация значений показателя, управление полномочиями, аудит и т.д..
У нас в промышленной эксплуатации 4 года.
Большинство хотелок пользователей удается реализовать настройкой показателей и формул.
Удобно вводить данные сразу в определенные ячейки отчетов (Excel), либо через формы ввода (грид, Excel).
Настройка отчетов и расчетов для конечного пользователя слишком сложна, делается службой техподдержки. СУБД Оракл.
Дорого.
Концептуальный недостаток - построена "от форм" (в стиле Росстата), а не "от показателей".
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37978546
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,

Внедряй тогда уже сразу OLAP и пусть сами как хотят так и крутят показателями. Эх, аппетит приходит во время еды. Скоро захотят что б данные усилием мысли вводились... Как по мне пусть выдадут окончательный вариант ТЗ, а не порциями. Хотя с другой стороны, если готовы платить то почему бы и не делать как хотят. Мне б найти идиотов которые денег несчитают...
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37983118
Dako aka 3L33T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не дал хотя бы подсказку как спроектировать хотя бы направление куда копать, щас никто не платит а хотят все на халяву ребята. Прошу ребята прошу просто указать куда копать хотя бы приблизительно структуру Excel подобных систем дальше сам подхвачу.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37983521
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,

В описание показателя добавь колонку "имя функции", которая(функция) будет реализовывать формулу.
Параметром функции будет, скорее всего дата.
Для работы с данными используй функцию типа
getval(ид объекта(филиала),ид показателя,дата).

Тогда функция расчета для idObj=10, idParam=25 будет выглядеть примерно так:

function get_10_25(date) float
return getval(11,26,date)+getval(3,13,date)-getval(22,77,date)...

функция getval(...) хранимые показатели должна считывать из БД, а для расчетных показателей вызывать соответствующие фукнкции (а эти фукнции в свою очередь вызывать getval-ы). Так что побеспокойся насчет рекурсии.
...
Рейтинг: 0 / 0
Как спроектировать БД
    #37983721
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dako aka 3L33T,

Ну и че ныть? Я тебе подсказал куда копать. Клиентом к OLAP может быть тот же эксель, в котором они и будут все крутить как захотят. Хоть отнимать, хоть среднее, ... Если кто неумеет формулами пользоваться пусть жмут F1 и вникают.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как спроектировать БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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