Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше сделать? / 25 сообщений из 31, страница 1 из 2
18.11.2009, 17:20
    #36317983
Сказочный леший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать?
Вот такую вещь надо заносить в базу:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возьмите, например, экскаватор и попробуйте его описать. Карьерный будет отличаться от экскаватора-погрузчика и не будет иметь вообще ничего общего с хирургическим. Который, в свою очередь, будет существенно отличаться от стоматологического. Единственная общая часть всех экскаваторов - ковш. Семантическая эквивалентность тоже бывает условной.
...
Рейтинг: 0 / 0
01.12.2009, 17:30
    #36341707
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше сделать?
guest_20040621Так себе простой
забубенить параметры техники в БД и искать по ним - не простая задача? даже если забыть, что речь только о спецтехнике идет, а не о сематнике экскаваторов, все равно ничто не мешает наплодить параметров, указать им доступность, и искать по ним.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как лучше сделать? / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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