Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Организация структуры БД


Страницы:   1 2

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]

СУБД какая ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо