|
|
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Есть задача учет происходящих событый в организации. Собития имеют как общие аттрибуты (например, дата начала события, длительность, ответственный), так и специфические (например, собитие измерение давления - спец.параметр давление, или установка ограждения - спец.параметри, тип ограждения, к-во секций). Параметры не всегда простого типа, иногда это ссылки на справочники (например, тип ограждения). Количество типов событий довольно большое - в районе 500 типов. Самих событий тоже много, за месяц - приблизительно милион. Первое, что приходит на ум делать одны таблицу для общих параметров, и для каждого специфического делать спец таблицу со связкой на общую через ИД. Но таких таблиц будет много, еще больше будет процедур которые их обслуживают. Какие еще есть варианты реализации для такой задачи (реализация будет на MSSQL)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 12:30 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregonеще больше будет процедур которые их обслуживаютпочему это? insert, update, delete, select - всего четыре правда эти четыре процедуры будут здоровенными но большинство кода в них, наверное, Вы сгенерируете автоматически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 12:36 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Паганель, Потому, что каждое событие наверняка потребует проверки бизнес логики, что туда заходит, и как минимум, для каждой из них нужно будет писать процедуру check... И еще, насколько я Вас понял, если единая процедура селект, то как минумум светит динамический SQL, что по скорости не совсем хорошо, на таких объемах данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:28 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregonчто туда заходит, и как минимум, для каждой из них нужно будет писать процедуру checkне обязательно роль процедур могут выполнять check констрейнты Yura Peregonесли единая процедура селект, то как минумум светит динамический SQL.не обязательно можно в этой процедуре перечислить все таблицы через union all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:42 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Паганель, 1. Чеки констрайнты проходят, только для простых проверок внутри таблицы, а если сложные, выходящие за рамки таблицы? 2. Стоп, а что даст UNION ALL если в этих таблицах РАЗНЫЕ поля (общие и так в отдельной таблице)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:47 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregon wrote: > Количество типов событий довольно большое - в районе 500 типов. > Самих событий тоже много, за месяц - приблизительно милион. Применять EAV для событий и их атрибутов. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:48 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Можно поподробнее, что такое EAV? Может ссылочку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 15:52 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregonа если сложные, выходящие за рамки таблицыих ведь меньшинство? напишите их всех в одной процедуре и дергайте ее из процедур insert, update и delete Yura Peregonа что даст UNION ALL если в этих таблицах РАЗНЫЕ поля Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 16:08 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregon Количество типов событий довольно большое - в районе 500 типов. И у каждого из 500 типов свое уникальное поле? Или можно выделить группы подтипов. Предположим что основная работа предполагается с таблицей целиком - дай мне все события за месяц, или все события по объекту. Тогда ваш подход имеет смысл. Дополнительные таблицы (они могут быть дополнительными полями в основной таблице) играют роль примечания. Yura Peregon Но таких таблиц будет много, еще больше будет процедур которые их обслуживают.Это как раз вас должно меньше всего волновать. Ибо нормальная задача пишется гораздо быстрее чем эксплуатируется. Yura Peregon Можно поподробнее, что такое EAV? Может ссылочку?Wiki, поиск по форуму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 17:14 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Паганель, Селект с юнион - это просто жесть. Представьте себе 500 таблиц и полей так 3000+ (кстати, вам хватит ширины вьюшки? а добавить новое событие?). Вы бы сделали такую систему? А ресурсов под нее сколько нужно было бы? С чего вы взяли что такая выборка нужна? Нужно как раз другое, скармливаем ИД получаем набор специфических параметров, то есть для каждого типа, своя структура на выходе итого, если одна процедура селект, то динамического СКЛ не избежать.... или куча мелких и быстрых процедур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 17:18 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
SERG1257, Основное назначение пока выглядит так, есть форма событий за период (например, день) которая показывает список всех общих параметров событий, при переходе между событиями с доп области показываются доп параметры. Тоесть, главный список выгребается одно процедурой по общей таблице, детализация же использует процедуру с параметром ИД для отображения деталей одного спец события. Отчетность строится по группам событий, тоесть по факту соединяем главную таблицу и до 5 подчиненных. Для каждого события есть load, save, delete, check процедуры - потому их получается довольно много, зато для клиента все в принципе прозрачно - есть тип собития, дабавляем его к load и грузим данные. Пока так, но вопрос задал для того, что понять может есть более оптимальные способы хранения информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 17:27 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura PeregonС чего вы взяли что такая выборка нужна?Потому что до этого момента Вы не говорили, какая выборка нужна Yura Peregonскармливаем ИД получаем набор специфических параметров, то есть для каждого типа, своя структура на выходе итогоТогда пусть клиент сам формирует текст SQL запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 17:34 |
|
||
|
Подкажите структуру БД
|
|||
|---|---|---|---|
|
#18+
Yura Peregon wrote: > Можно поподробнее, что такое EAV? Может ссылочку? http://en.wikipedia.org/wiki/Entity-attribute-value_model Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2010, 19:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36800662&tid=1542582]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
164ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 453ms |

| 0 / 0 |
