![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Организация структуры БД
alsov © (2007-02-07 10:19:00)Приветствую, Мастера
Имеется следующий вопрос
Есть две таблички
1 - Параметр
2 - Тип параметра
3 - Значение параметра
4 - Набор справочников (допустим справочник 1, справочник 2 и т.д.)
Значение параметра может быть и строкой, и числом, и датой, и ссылкой на справочник.
Вопрос: Как сохранить эту радость в бд.
Есть 2 варианта:
1. Для каждого типа параметра сделать свою табличку, т.е. будут следующие таблички
- Строчное значение параметра, всязано идентифицирующей всязью с таблицей Значение
параметра (аналогично для даты и числа)
- Связка многие ко многим Значения параметра и каждого справочника. За то, из какого
справочника брать данные отвечает тип параметра.
Минусы:
- Много таблиц наплодиться
Плюсы:
- Ограничение целостности базы сохраняется
2. Значение параметра храниться в таблице Значение параметра как строка (и число, и дата,
и ссылка на справочники). Тип значение в приложении определяется по типу параметра. Т.е.
для ссылки в значении храниться ид значения справочника, а по типу парамтра определяется
из какого именно справочника брать данные для связки
Минусы:
- Целостность базы поддерживается на уровне приложения
Плюсы
- Нету кучи таблиц связки.
Какой из вариантов лучше? Или же есть какие-ниудь другие варианты?
Заранее спасибо за любую помощь.
Sergey13 (2007-02-07 15:33:00) [21]> [14] alsov © (07.02.07 15:28)
Наверное будет проще разговаривать, если расскажешь про предметную область твоей задачи.
alsov (2007-02-07 15:28:00) [22]
Сергей М.
Размер пока неизвестен. Параметров скорей всего будет около 100-200, будет порядка 1000 обследований, которые будут содержать по 10-30 значений параметров.
Но это не окончательно.
evvcom
> Я только написал, что это можно. А стремным я б назвал описание
> задачи и, возможно, принятую (принимаемую) структуру. А
> чтобы что-то предложить, мало информации.
Какой именно информации нехватает? Объема данных.
Просто это только часть структуры. Хотелось определиться какой из названых подходов лучше.
evvcom (2007-02-07 12:56:00) [23]> [5] Desdechado © (07.02.07 11:17)
> А описал одну
А я подумал, что 4. Там цифры от 1 до 4 :)
> > Целостность можно поддержать триггерами и пакетами.
> Стремно очень.
Я только написал, что это можно. А стремным я б назвал описание задачи и, возможно, принятую (принимаемую) структуру. А чтобы что-то предложить, мало информации.
Сергей М. (2007-02-07 12:34:00) [24]
> alsov © (07.02.07 12:26) [11]
Я про размерспрашиваю, а не про тип. Разницу-то ощущаешь между типом и размером ?
alsov (2007-02-07 12:26:00) [25]Тип может быть либо строка, либо целое число, либо дата, либо ссылка на справочник.
Наполнение базы пока неизвестно. Структура должна быть как можно более универсальна
Сергей М. (2007-02-07 12:25:00) [26]
> alsov © (07.02.07 12:03) [9]
> любого типа
Сначала определись с предельным размером данных, требуемых для хранения значений любого типа.
alsov (2007-02-07 12:03:00) [27]Есть некий набор параметров
+ тип1
--- Пар 1
--- Пар 2
+ тип2
+ подтип1
-- пар1
-- пар2
Нужно сохранять значения (которое может быть любого типа, в т.ч. ссылка на сложный справочник)
Sergey13 (2007-02-07 11:40:00) [28]> [7] alsov © (07.02.07 11:28)
Ну я предполагаю, что есть некий объект, неопределенное количество параметов надо хранить. Так? Наверное сначала надо определиться как хранить собственно список параметров этого объекта. А потом уже думать над хранением их значений. Может быть ограниченное значение параметров вообще (без привязки к объекту, т.е. справочник параметров), а может быть произвольный набор произвольных параметров (типа захотел полосатость в джоулях добавить - добавил для какого-то экземпляра объекта).
Пока, лично мне, задача не ясна.
alsov (2007-02-07 11:28:00) [29]Desdechado
> > Есть две табличкиА описал одну.
Очепятался
> Если же справочники есть возможность свести в одну таблицу,
> добавив поле "тип справочника", то все еще упрощается.
> Я за несколько таблиц и уменьшение геморроя с контролем
> целостности.
Не получается :(
У каждого справочника своя специфика.
Sergey13
> Если честно, то я немного не въехал в желаемую структуру.
> Например параметр - он же чего-то там параметр, а не сам
> по себе параметр. Нутром чую, что это про неопределенное
> количество параметров, но к описанию применить не могу.
> 8-)
Забыл описать что параметры имеют иерархическую структуру. Значения сохраняются только для чаилдов.
Sergey13 (2007-02-07 11:17:00) [30]На
http://www.sql.ru/forum/actualtopics.aspx?bid=36
это достаточно часто обсуждается.
> Есть две таблички
> 1 - Параметр
> 2 - Тип параметра
> 3 - Значение параметра
> 4 - Набор справочников (допустим справочник 1, справочник
> 2 и т.д.)
Если честно, то я немного не въехал в желаемую структуру. Например параметр - он же чего-то там параметр, а не сам по себе параметр. Нутром чую, что это про неопределенное количество параметров, но к описанию применить не могу. 8-)
Desdechado (2007-02-07 11:17:00) [31]> Есть две таблички
А описал одну.
> Минусы: Много таблиц наплодиться
Не вижу много, всего 4 (при одном справочнике), т.к.
> Значение параметра может быть и строкой, и числом, и датой, и ссылкой на справочник.
Если же справочники есть возможность свести в одну таблицу, добавив поле "тип справочника", то все еще упрощается. Я за несколько таблиц и уменьшение геморроя с контролем целостности.
> Целостность можно поддержать триггерами и пакетами.
Стремно очень.
evvcom (2007-02-07 11:02:00) [32]> [0] alsov © (07.02.07 10:19)
> Минусы:
> - Целостность базы поддерживается на уровне приложения
Ну почему ж? Целостность можно поддержать триггерами и пакетами.
alsov (2007-02-07 10:53:00) [33]Оракл
фдыщм (2007-02-07 10:53:00) [34]Оракл
Сергей М. (2007-02-07 10:42:00) [35]СУБД какая ?