Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопрос по модели данных / 7 сообщений из 7, страница 1 из 1
28.07.2010, 15:36
    #36764237
Yura Peregon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Есть задача по учету всех работ выполняемых на объекте. Есть справочник работ, каждая работа характеризируется набором общих и своих специфичных параметров. Общие параметры выполняемых работ хранятся в общей таблице, для специфических параметров созданы для каждого типа работ свои таблицы. Схема довольно громоздкая и плохо масштабируемая, когда нужно добавлять работы, или изменять параметры существующих работ.

Если сталкивались с такой задачей, как ее решали в плане модели данных (практически все специфические параметры используются в отчетности и при поиске)? Может лучше в одной таблице держать XML со специфическими параметрами, насколько пробленое такое решение, как в таком случае будет со скоростью?

Спасибо.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
28.07.2010, 16:20
    #36764384
Иосиф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Yura PeregonЕсть задача по учету всех работ выполняемых на объекте. Есть справочник работ, каждая работа характеризируется набором общих и своих специфичных параметров. Общие параметры выполняемых работ хранятся в общей таблице, для специфических параметров созданы для каждого типа работ свои таблицы. Схема довольно громоздкая и плохо масштабируемая, когда нужно добавлять работы, или изменять параметры существующих работ.
А более наглядно сформулировать задачу?
Пока что, вариант такой:
1. таблица параметров
ID параметра (PK)
описание параметра?
2. таблица шаблонов работ
ID шаблона
ID параметра (FK)
3. таблица работ
ID работы (PK)
ID шаблона (FK) (если нужен)
ID параметра (FK)
Нужен новый типа работ - добавляем шаблон. Нужна новая "стандартная" работа - копируем шаблон. "Не стандартная" - добавляем отдельные работы.

Из минусов - повторение "общих" параметров для каждой работы. Пока нет понимания, что скрывается под "параметром" нет понимания на сколько это плохо.
Из плюсов - нет сложностей с "новыми" задачами и когда "с этой работой не как обычно, а все совсем по другому"

ps. Но повторюсь, это сферический конь в вакууме. а предсказательный шар, от жары сбоит.
...
Рейтинг: 0 / 0
28.07.2010, 16:39
    #36764443
Yura Peregon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Более наглядно

Справочник работ
IDработы Название ТаблицаПараметров
1 Прокладка кабеля T001
2 Настройка модема NULL

для работы 2 нет доп параметров, для работы 1 доп параметры в табличке T001

Выполненые работы
ID IDработы Дата
1 1 01/01/10
2 1 01/01/10
3 2 01/01/10
4 1 01/01/10

Т001 для даного случая
ID МетражКабеля
1 10
2 15
4 20

Схема очень упрощена от того что есть, параметры в основном цифровые и строковые.
Проблема в том что для каждого нового типа работ нужно проектировать табличку T... и добавлять в код обрабатывающий выполнение работ.


Думаю в таблицу Выполненые работы добавить поле XML куда воткнуть все то что лежит в табличка T..., но к примеру строятся отчеты типа Использованый кабель за день, тоесть будет разбираться причем активно внутренности ХML
...
Рейтинг: 0 / 0
28.07.2010, 16:47
    #36764461
rmka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Yura Peregon,

все доп параметры по всем работам делаешь в одной таблице и делашь ссылку на работы. Фактически у тебя в нынешней структуре имя таблицы и есть ссылка.
...
Рейтинг: 0 / 0
28.07.2010, 16:58
    #36764491
Yura Peregon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Тоесть фактически убить типизацию как таковую? А если понадобиться (в качестве параметра таблица, такое уже есть - сейчас это Т001Details) тогда как?

Как по мне XML решает эти проблемы, но не появятся ли другие о которых я пока не подозреваю?
...
Рейтинг: 0 / 0
28.07.2010, 17:24
    #36764570
rmka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Yura PeregonТоесть фактически убить типизацию как таковую? А если понадобиться (в качестве параметра таблица, такое уже есть - сейчас это Т001Details) тогда как?

Как по мне XML решает эти проблемы, но не появятся ли другие о которых я пока не подозреваю?

1. Что вы подразумевате по типизацией?
2. Вы просили совет как правильно делать, я вам дал его. Естественно его реализация подразумевает переделку ПО.
3. "А если понадобиться (в качестве параметра таблица" а зачем? если вы переделаете и все доп параметры будут в одной таблице. Вы же как раз и хотите избавится от такой структуры и не будет у вас десятков таблиц.. :) Так и хочется сказать "Зачем делать просто если можно следать сложно" :)
4. Работа с XML в ещё тот геморой.
...
Рейтинг: 0 / 0
29.07.2010, 04:41
    #36765295
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по модели данных
Yura Peregon Схема довольно громоздкая и плохо масштабируемаяВ упор не вижу плохой масштабируемости: новый объект -> новая клиентская программа (надо же как то новые данные вводить, искать, отображать) -> новая база (с доп таблицами или полями).
Неприятно только что вместо одной новой сущности - клиентской программы, добавляется ДВЕ - программа и база и стало быть ЧЕТЫРЕ возможных состояния. С другой стороны по статистике данные живут дольше программ.
Yura Peregon Может лучше в одной таблице держать XML со специфическими параметрами, насколько пробленое такое решениеЕсли все специфические данные читаются/пишутся только вместе, одним большим массивом то смысл есть. Однако поиск по определенному полю - уже проблема. Оно конечно решается, но решается удвоением хранения, усложнением обработки и т.д. А если возникнет задача обработки типа у всех работ у которого метраж кабеля больше 50 установить в 50 то тут с XML совсем грустно.
Есть еще EAV - то еще убожество с совершенно убитой производительностью
авторТоесть фактически убить типизацию как таковую?Если сделать три поля (для даты, числа и строки) плюс ограничение, что заполнено должна быть только одно, то типизация останется. Но повторюсь EAV - зло.
Yura Peregon А если понадобиться (в качестве параметра таблица, такое уже есть - сейчас это Т001Details) тогда как?Это надо что-то в консерватории править.

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


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