powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Учет техники
8 сообщений из 8, страница 1 из 1
Учет техники
    #38903095
rean1mator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!

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

Задумка следующая:
БД должна быть составлена так, чтоб можно было отбирать технику по её техническим характеристикам (например, нужно выбрать мониторы с диагональю 22дюйма);

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

Должен быть справочник техники и основная таблица, в которой будет собираться техника, находящаяся на балансе предприятия.

Справочник техники должен содержать в себе собранные устройства, из которых в дальнейшем пользователь сможет выбирать необходимые и ставить на баланс предприятия. Таким образом данный справочник техники должен выступать в роли коллекций реально существующей техники, дабы пользователь, слабо понимающий в технике не смог наклацать принтер от производителя Seagate, модели LBP3010 с тех.характеристикой "углы обзора 178град".

На данный момент у меня есть вариант БД, в котором для каждого типа техники есть своя таблица, содержащая в себе примерно следующее: id, идентификатор производителя, идентификатор модели и набор полей с тех.характеристиками.

Конечно, такой вариант модели БД можно использовать, но расширять её, добавляя новые типы техники, новые характеристики и тд будет очень неудобно.

Помогите пожалуйста собрать правильную модель БД. Спасибо всем, кто отзовется!
...
Рейтинг: 0 / 0
Учет техники
    #38903117
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rean1matorНа данный момент у меня есть вариант БД, в котором для каждого типа техники есть своя таблица, содержащая в себе примерно следующее: id, идентификатор производителя, идентификатор модели и набор полей с тех.характеристиками.

можно попробовать эти все таблицы унаследовать от одной таблицы с общими полями (id, название модели, дата добавления и т.п.) и добавить поле с типом техники.

будет сквозная нумерация (удобно ссылаться из других таблиц, хотя это можно и без наследования сделать), поиск по общим полям во всех таблицах, новые типы техники/характеристики добавляются относительно несложно. в приложении правда все равно где-то придется прописать сопоставление типов техники и названий дочерних таблиц.
...
Рейтинг: 0 / 0
Учет техники
    #38903140
rean1mator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexius можно попробовать эти все таблицы унаследовать от одной таблицы с общими полями (id, название модели, дата добавления и т.п.) и добавить поле с типом техники.

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

В приложении (оно будет web-приложением на php и тд) в формах ввода буду стоять выпадающие списки (производители, модели и тд). Выпадающие списки будут формироваться выборкой, например:нужных производителе получеем из таблицы, связывающей производителей с типами техники. Т.е. селектаем всех производителей, у которых тип техники равен нужному нам типу.

На сколько я понимаю, в предложенном Вами решении так и останется каждому типу техники своя таблица, только общие для всех поля будут вынесены в отдельную таблицу-родителя?

А про сквозную нумерацию и поиск по общим полям я что-то не очень понял. Не могли бы Вы описать немного подробнее? (Простите, если переспрашиваю элементарные вещи)
...
Рейтинг: 0 / 0
Учет техники
    #38903229
rean1mator,

мастер-таблица плюс eav с типозависимыми характертстиками. если объемы в терабайты или слабая техника, то гибридный eav, иначе комплексный поиск с ORами загнется. ну и метаданные по типам техники на eav.
...
Рейтинг: 0 / 0
Учет техники
    #38903416
rean1mator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я Вас очень слабо понимаю. Где-то в первом посте я писал, что я начинающий в базах данных.
Смог наковыряять про eav, но суть его пока не понял.

Объемы данных у меня и гигабайтов не будет. Дело тут не в объеме, а правильной и удобной в работе модели БД. Буду ещё рассматривать eav, но на первых парах оно мне кажется очень сложным и закрученным.
...
Рейтинг: 0 / 0
Учет техники
    #38903459
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rean1mator,

все данные будут в своих таблицах, мастер таблица в данном случае будет пустой, но она как обертка для всех таблиц. т.е. например такой запрос, где model_name общее поле

select * from parent_table where model_name = '...'

на самом деле выполнится во всех дочерних таблицах и вернет скомбинированный результат. про сквозную нумерацию имеется ввиду что все дочерние таблицы будут использовать один общий сиквенс для id.

для небольшого числа (до нескольких десятков) типов техники такой подход вполне оправдан и имхо намного лучше будет чем eav. да даже хранение в json/hstore атрибутов наверное лучше будет чем eav.
...
Рейтинг: 0 / 0
Учет техники
    #38904449
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rean1mator,

Про EAV читайте.

Структура например такая:

Категория (принтер; монитор)

Производитель (Xerox; LG)

Параметр (тип_принтера, цветной?; диагональ, разрешение)
-> Категория

Модель
-> Категория
-> Производитель

Значение -- вот эта таблица по EAV
-> Модель
-> Параметр
...
Рейтинг: 0 / 0
Учет техники
    #38904489
Еав и Адма
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rean1matorСмог наковыряять про eav, но суть его пока не понял.По сути он зло. Контроль целостности, специфичное индексирование, оптимизация структуры хранения в зависимости от характера атрибута делаются ручками, но один раз на все типы атрибутов. Переназывать его по типу реализации json или xml - что в лоб, что по лбу. Если набор типов объектов и их атрибутов достаточно статичны, это одно. Но для динамически изменяемых через интерфейс пользователя атрибутов - альтернативы нет.
Поэтому EAV в том или ином виде прижился в различных универсальных системах, особенно, когда они еще и кросссубдшные.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Учет техники
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]