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%)


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

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


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

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


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

Группа: Участник
Сообщений: 319
Регистрация: 15.3.2008
Из: Замкадыш
Пользователь №: 121

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




Репутация:   6  


А смысл создавать новый язык, если уже есть готовые, нужно только реализовать тот самый мэпинг... систему соотношения, во)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sokoloff
  опции профиля:
сообщение 4.12.2009, 12:54
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 237
Регистрация: 1.4.2009
Из: Москва
Пользователь №: 654

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




Репутация:   11  


Цитата(Novak @ 4.12.2009, 11:48) *
А смысл создавать новый язык, если уже есть готовые, нужно только реализовать тот самый мэпинг... систему соотношения, во)


Сразу оговорюсь, я не являюсь профессионалом в данной области.

Я не говорил что нужно создать новый язык, я говорил, что похоже на создание нового языка, т.е логика размышлений похожа.

То на что я глядел из ORM (глядел, не работал, сейчас даже названий не вспомню) реализовывали немного другой подход. В процессе проектирования описывались структуры данных, потом запускался скрипт создания базы для необходимых объектов. Юрию нужно добавление новых атрибутов в рантайме. Если есть готовые ORM реализующие это, подскажите Юрию, скорее всего для C++.

Как-то все остановились на "для каждого типа данных использовать отдельную таблицу", я предложил свои 5 коп.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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




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