powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше сделать?
31 сообщений из 31, показаны все 2 страниц
Как лучше сделать?
    #36317983
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такую вещь надо заносить в базу:

● Автовышка ( высота, коленчатые, телескопические, г/п )
● Автогрейдер ( тоннаж )
● Автокран ( г/п, вылет стрелы, гусек )
● Асфальтоукладчик ( колесный, гусеничный, ширина укладки )
● Бетоновоз ( объем )
● Бетоносмеситель
● Бетононасос ( длина, высота подачи )
● Бульдозер ( тоннаж )
● Виброкаток ( кулачковые, гладковальцовые, тоннаж )
● Вывоз мусора ( объем бункера )
● Грейфер ( гусеничные, колесные, глубина копания, объем ковша )
● Дорожная фреза ( ширина фрезы )
● Илосос (кубатура)
● Каток ( тоннаж )
● Компрессор ( кол-во молотков, длина шлангов )
● Манипулятор ( г/п стрелы, вылет стрелы, г/п кузова, длина и ширина кузова )
● Минипогрузчик
● Миниэкскаватор
● Низкорамник ( г/п, длина, ширина, высота платформы, угол заезда, лебедка )
● Поливомоечные машины ( объем бочки, щетка, отвал )
● панелевоз ( тоннаж )
● погрузчик ( фронтальный – г/п, объем ковша. Вилочный- г/п, высота подъема)
● Самосвал ( г/п, объем кузова )
● Электростанция
● Экскаватор
● экскаватор-погрузчик
● эвакуатор
● Ямобуры ( глубина бурения, диаметр бура )
● другая спецтехника

Таким образом, это тип спецтехники, и для каждого из типов - свои параметры. Я вот думаю сделать так: таблицу с полями Id единицы Спецтехники, тип, Param1, Param2,...,ParamN

Param будут свои для каждого типа спецтехники...нормально?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318062
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для каждой сущности надо делать свою таблицу -- так говорят классики
и не надо бояться большого количества таблиц.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318122
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosovдля каждой сущности надо делать свою таблицу -- так говорят классики
и не надо бояться большого количества таблиц.
Напишите запрос, который выбирает всю технику, у которой есть параметр "тонаж" и он
меньше 30 тонн.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318123
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosov,

тут можно сказать, что сущностью является объект инвентаризации, т.е. одна таблица объектов. В этом случае решение Сказочный леший вполне нормально
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318126
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный леший Param будут свои для каждого типа спецтехники...нормально?Надеюсь имена у них будут человеческие а не Param1, Param2,...,ParamN
А то ведь можно и таблицы назвать table1, table2 table3 "чтоб никто не догадался" (с) Операция Ы
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318175
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный лешийParam будут свои для каждого типа спецтехники...нормально?
Существуют несколько подходов.

1. Всё в одну таблицу, некоторые поля используются только для некоторых типов записей (то, что Вы написали)
2. Каждый тип в свою таблицу.
3. Основные общие поля в одну таблицу, специализированные поля - в отдельные таблицы, связанные 0..1
4. Все либо специализированные поля выносятся в универсальную структуру хранения - XML итп.
5. Использование каких-либо специфических расширений (объектные возможности в Oracle, в PG вроде есть наследование...)

У каждого есть свои достоинства и недостатки, надо выбирать наиболее удобный с точки зрения стоящей задачи.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318301
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиск только по наименованию будет,
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318948
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕННапишите запрос, который выбирает всю технику, у которой есть параметр "тонаж" и он меньше 30 тоннответ автора см выше
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36318962
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosovОКТОГЕННапишите запрос, который выбирает всю технику, у которой есть параметр "тонаж" и он меньше 30 тоннответ автора см выше
Тогда тем более надо по всем таблицам елозить. А зачем?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36319018
nosov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН

если Бетоновоз нужен зачем его по всей БД искать ?
справочник по Таблицам надо сделать
и искать в нужной таблице.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36319057
ОКТОГЕНnosovдля каждой сущности надо делать свою таблицу -- так говорят классики
и не надо бояться большого количества таблиц.
Напишите запрос, который выбирает всю технику, у которой есть параметр "тонаж" и он
меньше 30 тонн.

Во первых, в реальной жизни такой запрос вряд-ли понадобится.
А во вторых, с помощью динамических запросов это реализуется элементарно.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36327089
Настасья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант можно использовать XMLdata column.... и тогда, все будет в одной таблице + все характеристики хронятся в xml формате.
оч удобно получается.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36327392
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный лешийВот такую вещь надо заносить в базу

Как вариант...

Перечень техникиКодНазвание
Перечень характеристикКодНазвание
Единицы измеренияКодНазвание
Описание характеристик техникиКод техникиКод характеристикиКод единицы измеренияЗначение зарактеристики
Т.о. можно оформить все, что угодно. И спокойно делать любые запросы...
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36329262
Настасья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaСказочный лешийВот такую вещь надо заносить в базу

Как вариант...

Перечень техникиКодНазвание
Перечень характеристикКодНазвание
Единицы измеренияКодНазвание
Описание характеристик техникиКод техникиКод характеристикиКод единицы измеренияЗначение зарактеристики
Т.о. можно оформить все, что угодно. И спокойно делать любые запросы...

В такойм случае поиск не очень удобно осуществлять. тяжелый запрос будет. А так идеальный вариант... все нормализовано.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36329408
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настасья
В такойм случае поиск не очень удобно осуществлять. тяжелый запрос будет.
Вы уж напишите два варианта запроса и скажите, в чём у них "тяжесть" измеряется и насколько она отличается....
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36329827
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с общей идеей krvsa.
Однако надо различать ТИП ТЕХНИКИ и ЭКЗЕМПЛЯР ТИПА.
Характеристику имеет ТИП, а значение характеристики ЭКЗЕМПЛЯР.
Кроме того, характеристика имеет перечень допустимых значений (иначе юзеры наврут с три короба).
Другой вариант - характеристика для типа имеет перечень допустимых значений.

А вообще решение типовое и в моей практике встречалось не один (5-6) раз.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36329868
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С "тяжестью" запроса тоже интересно было бы ознакомиться...

P.S. А вот цитатат действительно "тяжеловата". Зачем так делать?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36332227
Сказочный леший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
круто, мою тему еще обсуждают. кстати еще не решила как делать, так что может и возьму на вооружение последний вариант...(помнится помогала кому то курсовой делать, вот там подобная схема была)...
неизвестно, может потом захочется поиск,например по грузоподъемности делать или еще ченидь, мож действительно сделать все по теории
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36332291
Настасья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой,

а вы пробовали написать запрос на поиск в данном случае техники допусти по двум характеристикам. Например вы ищите технику типа А с объемом Б.

Ну сделаете вы join всех таблиц... получите кучу строк... дальше что? как данные выбирать собираетесь? опять кучу джойнов и подзапросов?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36334219
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сказочный лешийпоиск только по наименованию будет,
Всегда умиляли подобные реплики.
Откуда уверенность, что через месяц никто не захочет другой поиск?

Решение задачи должно быть устойчиво к минимальному изменению исходных условий. Тем более такой простой задачи.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341184
Alexander_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

если используешь метаданные, то атрибуты можно назвать а1.. аn ... Имена объектов и атрибутов тогда, вообще, роли не играют и являются техническим элементом. Обратился к метаданным и получил структуру объект с семантическим наполнением атрибутов.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341445
Фотография актуалфорум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы сделал примерно так
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341447
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастасьяАнатоЛой,

а вы пробовали написать запрос на поиск в данном случае техники допусти по двум характеристикам. Например вы ищите технику типа А с объемом Б.

Ну сделаете вы join всех таблиц... получите кучу строк... дальше что? как данные выбирать собираетесь? опять кучу джойнов и подзапросов?
Настасья, а что вас пугает в "куче джойнов и запросов"? Количество запросов останется тем же. Их сложность - управляема. Взгляды и хранимые процедуры прячут сложность использования. Присутствующая нормализация - решает достаточно эффективно проблему дублирования данных. Производительность? Посмотреть бы на оба варианта в конце процесса и с учётом всех используемых запросов. По практике скажу - предлагаемый вариант отлично себя зарекомендовал... Или у вас планируется реализация на MySQL достаточно старой версии? Тогда есть нюансы :)
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341488
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Тем более такой простой задачи.

Так себе простой.

Возьмите, например, экскаватор и попробуйте его описать. Карьерный будет отличаться от экскаватора-погрузчика и не будет иметь вообще ничего общего с хирургическим. Который, в свою очередь, будет существенно отличаться от стоматологического. Единственная общая часть всех экскаваторов - ковш. Семантическая эквивалентность тоже бывает условной.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341707
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Так себе простой
забубенить параметры техники в БД и искать по ним - не простая задача? даже если забыть, что речь только о спецтехнике идет, а не о сематнике экскаваторов, все равно ничто не мешает наплодить параметров, указать им доступность, и искать по ним.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36341976
Настасья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To АнатоЛой: в моем случае... осуществление поиска по разным параметрам была суть системы.
потому что на сайт будет получать кучу запросов на поиск того или иного предмета по тем или иным параметрам. таким образом, быстрота выполения запроса на поиск... играет очень большую роль. И в таком случае, ваша схема, не самый лучший вариант.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36342040
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> забубенить параметры техники в БД и искать по ним - не простая задача?

Очень непростая. "Забубенить" - проблем нет, как при этом не потерять контекст - проблема.

> ничто не мешает наплодить параметров, указать им доступность, и искать по ним

Вы говорите о том, как делают, или о том, как должно делать? Конечно, мешает. У хирургического экскаватора нет и не может быть, например, шасси. Семантического ограничения недостаточно. Вообще ограничения получить в общем виде невозможно, в качестве условия может выступать любой, в т. ч. не регистрируемый в базе данных атрибут.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36342600
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастасьяTo АнатоЛой: в моем случае... осуществление поиска по разным параметрам была суть системы.
потому что на сайт будет получать кучу запросов на поиск того или иного предмета по тем или иным параметрам. таким образом, быстрота выполения запроса на поиск... играет очень большую роль. И в таком случае, ваша схема, не самый лучший вариант.

Настасьязапрос на поиск в данном случае техники допусти по двум характеристикам
Например вы ищите технику типа А с объемом Б.


Привожу пример для схемы от актуалфорум:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE VIEW v_equipment_attributes(
    et_name
  , a_name
  , ea_numval
     ...
) AS SELECT
    et.name   AS et_name  
  , a.name    AS a_name   
  , ea.numval AS ea_numval
     ...
  FROM equipment e
    JOIN equipment_type et
       ON e.equipment_type_id = et.id
    JOIN equipment_type_attribute eta
       ON eta.equipment_type_id = et.id
    JOIN attribute a
       ON eta.attribute_id = a.id
    JOIN equipment_att ea
       ON ea.att_id = a.id
      AND ea.equipment_id = e.id;

SELECT *
   FROM v_equipment_attributes
     WHERE et_name = 'А'
       AND a_name = 'Объём'
       AND ea_numval =  90 ;

Повторюсь:

АнатоЛой
НастасьяВ такойм случае поиск не очень удобно осуществлять. тяжелый запрос будет.

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


Приведите уж свои варианты схемы, запроса и прочие аргументы...
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36391479
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если пробовать создавать наследования объектов в базе?
Сгруппировать оборудование по типам и разработать для них схему наследования?

Автотранспорт
---------------
ID авто
....


Автовышка
-------------
ID авто
Высота
кол-во телескопов
кол-во колен ))
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36392424
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spА если пробовать создавать наследования объектов в базе?
А если пробовать создать тему в форуме "Работа"? Если все вышеперечисленное не помогло, наверное, уже пора?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #36392748
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наблагодарное дело в БД объекты реального мира моделировать. Сведите всю технику к учётным документам, их и заводите в БД эти документы. Как тут говорили - инвентарные карточки и т.п.

Форму карточек определите исходя из потребности в информации. Если карточка на бумаге будет вменяемой, то и в БД легко ляжет.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше сделать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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