Проектирование универсальной структуры БД |
Здравствуйте, гость ( Вход | Регистрация )
Проектирование универсальной структуры БД |
Litkevich Yuriy |
20.11.2009, 13:51
Сообщение
#1
|
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Задался вопросом как бы так запроектировать структуру БД, чтобы её для всех задач использовать.
За основу взял такую задачу - справочник по радиоэлектронным компонентам. Суть его такова, есть типы компонентов (конденсаторы, резисторы, ...). У каждого типа есть обязательный набор характеристик (для конденсаторв: Напряжение и ёмкость, для резисторов: сопротивление и мощьность). Также у каждого типа есть специфические характеристики, но необязательные (для конденсаторов: ТКЕ-температурный коэфициент ёмкости, для резисторов: ТКС - температурный коэфициент сопротивления). Плюс к этому у каждого компонента может быть уникальная, важная характеристика. Разумеется у каждого элемента есть марка (наименование) Дерево элементов можно представить так:
В интернете встречал такие термины - "сущьности" и "свойства сущьностей", вроде как такими терминами оперируют при проектировании БД. Видимо это какой-то подход, на манер шаблонов проектирования программ. Где-то так должен выглядеть процесс настройки заготовки БД: вот с типами и элементами вроде реализация сравнительно простая, а со свойствами не совсем понятно, т.к. тип данных может быть разный. И ещё, хотелось бы для каждого свойства задавать, некое связанное свойство, например, для "напряжения" - еденицу измерения - "Вольты" (тип: "строка") Может кто-нибудь подсказать, где про такие вещи почитать? |
|
|
||
Elfinit |
30.11.2009, 23:54
Сообщение
#2
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Когда-то на прежней работе подобная задача ставилась...Тоже создавали универсальную структуру БД. было там порядка 15 служебных таблиц (для описания таблиц, полей, типов, связей...). На всё это вешалась куча триггеров, которые собственно и "раскручивали" всё это дело. Например, была таблица document, описывающая все "обычные" таблицы. Запись в неё приводило к созданию таблицы. Была таблица document_fields - тоже назначение понятно. Были таблицы для описания типов полей, которые делились на базовые и ссылочные. И самый верх всего этого - универсальное редактирование документов. Сценарий должен был сам подгружать данные о полях документа и создавать нужные элементы управления. Причём отредактировать можно было всё, что угодно - даже записи в documents и documents_fields, что приводило к соответствующим действиям...А ещё выстраивалась древовидная структура документов (не на внешних ключах, а "вообще")
Через некоторое время я задался задачей написания своего варинанта, на sql-server (а то было на postgres), но что-то отвлёкся и отошёл... Скрипт прилагаю, глянь, если очень будет интересно)))
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 17.4.2024, 22:53 |