|
|
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Задача следующая: Наименование показателя| Ед.изм|план месячный|факт месяч.|Факт-план мес. | план сутки | факт сутки | факт-план сутки ------------------------------------------------------------------------------------------------------------------------------------ Общая по организации Строка 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 и тд Если единица измерений у головного показателя пустая то нижние строки не суммируются. Для каждого филиала показатели могут различаться. Филиалы могут быть разбиты на подфилиалы. Некоторые показатели усредняются в зависимости от единицы измерений. Также это разбито на филиалы и обобщаются в целом по организации. Пользователь желает заводить новые показатели и филиалы без привлечения программиста. Помогите спроектировать такую БД. Заранее благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 07:34 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
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) , тогда последняя таблица будет более "правильной". Показатели дельты между планом и фактом являются вычисляемыми величинами и в БД нехранятся. Если люди захотят календарный план то структура будет немного другая. Если захотят еще и изменять, видя историю - сколько было плана и на сколько поменяли, также структура будет другой. Все это нужно выяснять до того как строить БД. Удачи вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 15:44 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Злой Бобр, Код: sql 1. 2. 3. 4. Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя). И добавил бы "ид филиала" в table4. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 16:03 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
DirksDRЗлой Бобр, Код: sql 1. 2. 3. 4. Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя). И добавил бы "ид филиала" в 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 и хранимые процедуры. Прошу Ваших замечаний ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 16:51 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
DirksDRЯ бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя). По идее нет необходимости. И добавил бы "ид филиала" в table4. Да. Стопудово. Просто сходу писал, поэтому и прохлопал. Dako aka 3L33TА вот так правильно:... Ну для этого нада знать все ТЗ и специфику. В общих чертах может и подойдет, а конкретно - тебе видней. Есдинственное непонятно с сортировкой - нафига она там?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 21:05 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
сортировка для наименований показателей для каждого филиала своя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 22:26 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33Tсортировка для наименований показателей для каждого филиала своя Это как? Пример можно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 23:34 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33T, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Мне нравится. Не нашел к чему придраться:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 07:05 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
ЗАДАЧА ТЕПЕРЬ УСЛОЖНИЛОСЬ ТЕПЕРЬ ПРОСЯТ ЧТОБ НАИМЕНОВАНИЕ ПОКАЗАТЕЛЕЙ СУММИРОВАТЬ, ОТНИМАТЬ ТИПА В ЭКСЕЛЕ Пример: показатель1 строки1 филиала1 +сумма(показатель2 строки 3 филиала 2) - среднее(показатель 3 филиала 3) Как такое спроектировать пока мне непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2012, 15:56 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33TDirksDRЗлой Бобр, Код: sql 1. 2. 3. 4. Я бы добавил таблицу привязки показателя к филиалу (ид филиала, ид показателя). И добавил бы "ид филиала" в 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 и хранимые процедуры. Прошу Ваших замечаний Не правильно:) Потому что требования будут меняться и расширяться в такого рода проектах. Например, неизбежно появятся типы (не просто Расход денег, а по статьям: на то-то и на то-то). То есть, у показателей добавятся измерения (и вовсе не обязательно, что одинаковые для всех показателей). Потом возникнет вопрос с вычислениями производных показателей. И т.п. Вы сейчас находитесь на этапе написания терминов и определений. Вот этим и нужно заниматься. Что такое "показатель". И т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2012, 18:31 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Бредятина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 вариант. Как создать структуру для реализации пожеланий заказчика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2012, 21:32 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33TБредятинаНе правильно:) Потому что требования будут меняться и расширяться в такого рода проектах. Например, неизбежно появятся типы (не просто Расход денег, а по статьям: на то-то и на то-то). То есть, у показателей добавятся измерения (и вовсе не обязательно, что одинаковые для всех показателей). Потом возникнет вопрос с вычислениями производных показателей. И т.п. Вы сейчас находитесь на этапе написания терминов и определений. Вот этим и нужно заниматься. Что такое "показатель". И т.д. А Ваши конкретные предложения из чего состоят, я Вас не понял как реализовать похожий на Excel вариант. Как создать структуру для реализации пожеланий заказчика? Вот видите, появилось новое требование:) "Реализовать похожий на Excel вариант". Я же написал конкретное предложение - дать определение показателю и определиться с его моделью. Могут быть разные измерения (разрезы) у показателей (выше я привел пример)? Что Вы будете делать, если появится показатель значения которого нужно собирать еженедельно по понедельникам, а не ежесуточно? А если помимо плана и факта появится прогноз? И т.д. Посмотрите из чего состоит описание показателя, например, на fedstat.ru. У Вас оно состоит только из наименования. Просто убедитесь, что этого будет достаточно. У меня нет ощущения, что Вы в этом уверены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2012, 22:44 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33T, Код: sql 1. 2. 3. Задача большая и сложная, есть готовая система по ссылке: http://www.asuproject.ru/products/ois-usoi Ориентирована на показатели, расчет производных показателей и т.д.. Свой язык описания формул, отслеживается зависимость расчетных показателей от исходных, агрегация значений показателя, управление полномочиями, аудит и т.д.. У нас в промышленной эксплуатации 4 года. Большинство хотелок пользователей удается реализовать настройкой показателей и формул. Удобно вводить данные сразу в определенные ячейки отчетов (Excel), либо через формы ввода (грид, Excel). Настройка отчетов и расчетов для конечного пользователя слишком сложна, делается службой техподдержки. СУБД Оракл. Дорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2012, 09:05 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
DirksDRDako aka 3L33T, Код: sql 1. 2. 3. Задача большая и сложная, есть готовая система по ссылке: http://www.asuproject.ru/products/ois-usoi Ориентирована на показатели, расчет производных показателей и т.д.. Свой язык описания формул, отслеживается зависимость расчетных показателей от исходных, агрегация значений показателя, управление полномочиями, аудит и т.д.. У нас в промышленной эксплуатации 4 года. Большинство хотелок пользователей удается реализовать настройкой показателей и формул. Удобно вводить данные сразу в определенные ячейки отчетов (Excel), либо через формы ввода (грид, Excel). Настройка отчетов и расчетов для конечного пользователя слишком сложна, делается службой техподдержки. СУБД Оракл. Дорого. Концептуальный недостаток - построена "от форм" (в стиле Росстата), а не "от показателей". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2012, 10:40 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33T, Внедряй тогда уже сразу OLAP и пусть сами как хотят так и крутят показателями. Эх, аппетит приходит во время еды. Скоро захотят что б данные усилием мысли вводились... Как по мне пусть выдадут окончательный вариант ТЗ, а не порциями. Хотя с другой стороны, если готовы платить то почему бы и не делать как хотят. Мне б найти идиотов которые денег несчитают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2012, 14:11 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Никто не дал хотя бы подсказку как спроектировать хотя бы направление куда копать, щас никто не платит а хотят все на халяву ребята. Прошу ребята прошу просто указать куда копать хотя бы приблизительно структуру Excel подобных систем дальше сам подхвачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 10:46 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
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-ы). Так что побеспокойся насчет рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 13:46 |
|
||
|
Как спроектировать БД
|
|||
|---|---|---|---|
|
#18+
Dako aka 3L33T, Ну и че ныть? Я тебе подсказал куда копать. Клиентом к OLAP может быть тот же эксель, в котором они и будут все крутить как захотят. Хоть отнимать, хоть среднее, ... Если кто неумеет формулами пользоваться пусть жмут F1 и вникают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2012, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37983118&tid=1541519]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 424ms |

| 0 / 0 |
