crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проектирование универсальной структуры БД
Litkevich Yuriy
  опции профиля:
сообщение 20.11.2009, 13:51
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Задался вопросом как бы так запроектировать структуру БД, чтобы её для всех задач использовать.
За основу взял такую задачу - справочник по радиоэлектронным компонентам.
Суть его такова, есть типы компонентов (конденсаторы, резисторы, ...). У каждого типа есть обязательный набор характеристик (для конденсаторв: Напряжение и ёмкость, для резисторов: сопротивление и мощьность). Также у каждого типа есть специфические характеристики, но необязательные (для конденсаторов: ТКЕ-температурный коэфициент ёмкости, для резисторов: ТКС - температурный коэфициент сопротивления).
Плюс к этому у каждого компонента может быть уникальная, важная характеристика.
Разумеется у каждого элемента есть марка (наименование)

Дерево элементов можно представить так:
|
|-конденсаторы
|    |- К50-35 16В  100мкФ ±20% (ёмкость-100мкФ, напряжение-16В, допуск по ёмкости ±20%)
|    |- К50-35 35В  2200мкФ ±20% (ёмкость-2200мкФ, напряжение-35В, допуск по ёмкости ±20%)
|-Резисторы
|    |- С2-32-1 100 ±5% (сопротивление-100 Ом, мощьность 1Вт, допуск по сопротивлению ±5%)
|    |- С2-29-0,5 1к ±0,5% (сопротивление-1 кОм, мощьность 0,5Вт, допуск по сопротивлению ±0,5%)


В интернете встречал такие термины - "сущьности" и "свойства сущьностей", вроде как такими терминами оперируют при проектировании БД.
Видимо это какой-то подход, на манер шаблонов проектирования программ.

Где-то так должен выглядеть процесс настройки заготовки БД:
Прикрепленное изображение


вот с типами и элементами вроде реализация сравнительно простая, а со свойствами не совсем понятно, т.к. тип данных может быть разный.
И ещё, хотелось бы для каждого свойства задавать, некое связанное свойство, например, для "напряжения" - еденицу измерения - "Вольты" (тип: "строка")

Может кто-нибудь подсказать, где про такие вещи почитать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 2.12.2009, 11:24
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


Не бывает "универсальной структуры БД".
Иначе её бы уже давно разработали и все бы использовали. :)

Всё очень сильно зависит от класса задач, структуры данных, методов их использования, от типа движка.
"Универсальная" для одного из классов задач будет очень плохо подходить для другого.
Хорошее решение для версионника будет ложить блокировочник и наоборот. :)

Хотя можно написать некоторое количество шаблонов для сходных задач и приёмов программирования, а потом их использовать в похожих задачах. :)

В любом случае нужно иметь в виду, что реляционный подход в ОО напрямую не переводится, и хорошо спроектированная реляционная база довольно криво выглядит с точки зрения объектного дизайна и наоборот. :)

Сообщение отредактировал Tonal - 2.12.2009, 11:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   Проектирование универсальной структуры БД   20.11.2009, 13:51
- - Litkevich Yuriy   Немного усовершенствовал диалог настройки патрахов...   20.11.2009, 14:55
- - BRE   Что почитать не подскажу. Пока в голову пришла мы...   20.11.2009, 15:23
- - Litkevich Yuriy   Цитата(BRE @ 20.11.2009, 18:23) для каждо...   20.11.2009, 15:51
- - Elfinit   Когда-то на прежней работе подобная задача ставила...   30.11.2009, 23:54
- - Elfinit   Цитата(Litkevich Yuriy @ 20.11.2009, 15:5...   1.12.2009, 9:54
- - Litkevich Yuriy   Цитата(Elfinit @ 1.12.2009, 12:54) Зачем?...   1.12.2009, 11:51
- - Elfinit   Есть таблички: db_tables(id, name, description), ...   1.12.2009, 21:40
- - Litkevich Yuriy   Цитата(Elfinit @ 2.12.2009, 0:40) При вст...   1.12.2009, 21:52
- - trdm   может хватит велик изобретать, а стоит посмотреть ...   2.12.2009, 1:43
- - Tonal   Не бывает "универсальной структуры БД". ...   2.12.2009, 11:24
- - Litkevich Yuriy   Цитата(Tonal @ 2.12.2009, 14:24) что реля...   2.12.2009, 11:37
- - Tonal   Сходного везде очень много. Но и различий тоже хва...   2.12.2009, 11:50
- - Elfinit   Цитата(trdm @ 2.12.2009, 1:43) может хват...   2.12.2009, 19:58
- - Litkevich Yuriy   Цитата(Elfinit @ 2.12.2009, 22:58) Firebi...   2.12.2009, 20:44
- - Novak   А всё же не легче какую-нибудь систему ORM использ...   3.12.2009, 13:35
- - Litkevich Yuriy   Цитата(Novak @ 3.12.2009, 16:35) систему ...   3.12.2009, 15:26
- - Iron Bug   я на заре своей рабочей карьеры разрабатывала круп...   3.12.2009, 15:32
- - Novak   Цитата(Litkevich Yuriy @ 3.12.2009, 15:26...   3.12.2009, 16:32
- - Litkevich Yuriy   вот если взять системы сбора и обработки данных, т...   3.12.2009, 16:59
- - Sokoloff   Как уже сказали это будет медленнее чем база напис...   4.12.2009, 1:41
- - Novak   А смысл создавать новый язык, если уже есть готовы...   4.12.2009, 11:48
- - Sokoloff   Цитата(Novak @ 4.12.2009, 11:48) А смысл ...   4.12.2009, 12:54


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 18:06