|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Добрый день форумчане! Я, можно сказать новичок в этом деле, т.к это моя первая работа, и опыт проектирования только на уровне курсовых и дипломной. Собственно суть задачи : Хранить информацию об обследованиях технологического оборудования(Тех. нитки, ГСК, скважины, ФА, стыки скважин) на нескольких месторождениях. У предприятия может быть несколько месторождений,и на каждом из них может быть 1 и более газовых промыслов(ГП). На ГП есть множество так называемых технологических ниток, которые обследуются специальным оборудованием и из них берутся пробы газа и т.д. Помимо тех. ниток к каждому ГП приходят газосборные коллекторы(с каждого куста по одной ГСК), которые также обследуются. Скважины сгруппированы в кусты, и на них обследуется отдельно фонтанная арматура(ФА) и обвязка(стыки на трубе). Получились следующие зависимости : 1) МР-ГП-тех. нитки 2) МР-ГП-Кусты-ГСК 3) МР-ГП-Кусты-скважина-ФА 4) МР-ГП-Кусты-скважина-стыки Зависимостей много(по крайней мере для меня), и как всё связать, чтобы избежать избыточности данных, и можно было однозначно определить например с какого МР-ГП-куста скважина или позиция на ней.. В жизни ГП на разных месторождениях могут называться одинаково, например ГП1, ГП2, аналогично для кустов. Поэтому я сделал справочники для месторождений( tblFields ), ГП( tblGfs ), кустов( tblClusters ) связал их в таблице tblTechEquip, а уже эту связку привязываю к таблице скважин( tblWells ). Таблицу скважин связываю с таблицей стыков( tblJoints ) один ко многим, так же думаю связать ФА. Таблица tblTechToSurv связующая таблица с обследованиями и техн. оборудованием, в ней есть общее поля даты, но т.к обследования бывают разные для них я делаю отдельные таблицы, для примера tblUtm . Не знаю правильный ли это подход.. И как связать МР-ГП-Куст-скважина, МР-ГП-Кусты-скважина-стыки, если я добавлю их в tblTechEquip , то получится избыточность мр, гп и кустов.. Я немного в запутанности, и прошу помощи.. Буду благодарен любому ответу форумчан! Какая схема на данный момент получилась прикладываю к посту. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 12:23 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazanХранить информацию об обследованиях технологического оборудования(Тех. нитки, ГСК, скважины, ФА, стыки скважин) на нескольких месторождениях. Я не понял что является вашей базовой сущностью, которую надо хранить. Что есть "информация об обследованиях" и где схема под нее. Пока что ваша схема выглядит скорее как библиотека со структурой оборудования и мест, что, мне кажется, является сопутствующей задачей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 23:18 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
PizzaPizza, А как выделить базовую сущность? От чего плясать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 08:32 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazan, а сама информация об обследовании где храниться будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 09:40 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверин, Таблица tblUtm это отдельный вид обследования, к примеру узт, и т.к может быть несколько видов обследований(не знаю лучший ли это вариант), в таблице TechToSurv связываю обследуемый объект с видом обследования по ключам guid. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 12:34 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazan, как-то сложно воспринимать весь пост из-за специфичной прикладной лексики ;) Начнем с того, что ты хранишь некие обследования. Обследуешь ты некое технологическое оборудование. Понятно, что оборудование между собой имеет очень мало общего, но нам точно нужен тип оборудования. Имеем сущность: Обследование , Технологическое оборудование , Тип технологического оборудования Получаем твои таблицы: r_examinations , r_tech_equips , r_tech_equip_types Оборудование, как понятно из ТЗ - у нас очень сильно разное с разными свойствами. Следующий вопрос такой: будет ли поиск обследований по каким-либо из признаков технологического оборудования, кроме названия и типа? Если да, то скорее всего, придется делать под каждый тип оборудования - отдельную таблицу. Допустим, под каждый тип оборудования мы делаем отдельную таблицу с отдельным набором атрибутов. Каждый тип оборудования мы свяжем с таблицей родителем - r_tech_equips , куда вынесем все общие признаки: код, название, тип оборудования, может что-то еще. Итого: +сколько то таблиц: тех. нитки, ГСК, скважины, ФА, стыки скважин, каждая из которых является подчиненной с родительской: r_tech_equips . Дальше мы должны как я понял - привязать технологическое оборудование к всяким кустам, месторождениям и так далее. Пусть первое тех оборудоваие - стыки скважин. Нам нужны скважины? r_wells +таблица связи скважин и оборудования c_well_equip скважины мы связываем вроде как в кусты по аналогии: +таблица кустов, +таблица связи куст-скважина Ну и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 14:36 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazanPizzaPizza, А как выделить базовую сущность? От чего плясать? Задача, если я правильно понял, в хранении некоторых "обследований". То есть надо начитать от структуры обследования: что это такое, какие атрибуты есть, какой возможный формат данных у этих атрибутов, нужно ли выносить эти атрибуты в отдельные сущности или библиотеки и тп. Например есть сущность автомобиль. Для производителя это один набор атрибутов, для салона продаж другой. Атрибуты могут пересекаться, но важно понять специфику именно вашей системы и плясать в одном случае от автомобиля как от сборочной единицы, а в другом, как от сущности на продажу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 20:00 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
PizzaPizzaНапример есть сущность автомобиль. Для производителя это один набор атрибутов, для салона продаж другой. Атрибуты могут пересекаться, но важно понять специфику именно вашей системы и плясать в одном случае от автомобиля как от сборочной единицы, а в другом, как от сущности на продажу.Достаточно придумать некий механизм хранения произвольных признаков. И тогда хоть автомобиль, хоть туфли, хоть скважины, хоть недвижимость. Все это можно построить на абсолютно одном механизме. И даже внутри одной системы. 2 ТС: имейте ввиду, что требования к системе имею свойство постоянно меняться в сторону усложнения. И важно чтобы при этом менялись только настройки, а не структура всей системы. В идеале конеш. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 21:36 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
L_argo, Лично я не пользуюсь универсальными решениями для специализированных задач. У тс вроде не стоит задача написать 1с или crm универсальную. Опять же, вопрос в том, что ТСу надо хранить некоторые обследования (результаты или процедуры или процесс или и то и другое и третье?), но он не выделил эту сущность как основную, а проектирует сопутствующие библиотеки, что не однозначно потребуется и точно не требуется, пока не определена основная сущность и, следовательно, не совсем понятно как связывать атрибуты из библиотек с самими обследованиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 22:00 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
L_argoPizzaPizzaНапример есть сущность автомобиль. Для производителя это один набор атрибутов, для салона продаж другой. Атрибуты могут пересекаться, но важно понять специфику именно вашей системы и плясать в одном случае от автомобиля как от сборочной единицы, а в другом, как от сущности на продажу.Достаточно придумать некий механизм хранения произвольных признаков. И тогда хоть автомобиль, хоть туфли, хоть скважины, хоть недвижимость. Все это можно построить на абсолютно одном механизме. И даже внутри одной системы. 2 ТС: имейте ввиду, что требования к системе имею свойство постоянно меняться в сторону усложнения. И важно чтобы при этом менялись только настройки, а не структура всей системы. В идеале конеш. eav еще никто не озвучил, но в воздухе уже витает дух холивара. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 09:27 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверин, Ну какой холивар. Я очень люблю господина Пж eav, и применяю например когда клиент не может озвучить ограничение на сущность. Но, слава богу и возможности понимать клиента, большинство вопросов решаются более плоскими способами. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 09:48 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
чо вы суетитесь автор, делай чего-нибудь. не увязая в детали - сейчас на этом уровне не до них, у тебя нет внятного постановщика/аналитика, а сам ты предметной областью не владеешь. это все равно будет прототип, на котором тебе покажут что хотели на самом деле. а сам прототип за исключение "пары удачных кусков" пойдет в мусорное ведро в идеале - аккуратно донести эту мысль до заказчика. чтобы потом не было мучительно больно по обе стороны договора (или чего вас там связывает) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 10:29 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
ну и думать надо как отражать актуальную структуру оборудования на момент обследования (там же есть ремонты, замены, расширение состава оборудования - соответственно у обследований разных периодов одной и той же нитки будет разный состав оборудования), рамки обследования - к чему оно привязано к целой нитке или ее части, может ли быть "рамочное обследование" которое в себя агрегирует несколько меньших обследований конкретных кустов и прочих железяк ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 10:43 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Извините что влезаю. Но из того, что было представлено я вижу такую структуру: Таблица Equipment ID - уникальный код Name - наименование Type - тип оборудования ParentID - код родителя Таблица Results ID - уникальный код Name - наименование ResultData - результат обследования EquipmentID - код оборудования Комментарий: На мой взгляд все описанные связи являются просто деревом которое укладывается в одну таблицу. Так-же из описания видно, что на каждом узле этого дерева есть результат обследования. Все остальные данные легко добавляются в нужную таблицу. Либо заводится по таблице значений для каждого узла, если нужно что-то извращённое. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 16:04 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
а что, газодобывающее предприятие до разработки вашей нетленки не вело эти обследования?нет никаких бумажных бланков/журналов/экселей, которые с этой задачей без "БД для газодобывающего предприятия" (отлично) справляются? на газодобывающем предприятии нет специалистов, которые, с одной стороны, имеют экспертизу, а с другой, возможно, нуждаются в каком-то инструменте, и которых расспрашивать требуется в 1-ю очередь? какая цель в итоге стоит? рисовать красивые отчетики для начальства? зачем нужна эта ваша "БД для газодобывающего предприятия"? PS не верю, что у газодобывающего предприятия совсем нет денег, чтобы нанять нормального специалиста. или ему нафиг не надо эту вашу "БД для газодобывающего предприятия" - похоже, что это очередной курсач, который вы пытаетесь тут с помощью форума запилить. PS2 вам в форум Работа надо: "есть 100 тыр, сделайте за меня курсач" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 07:42 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверин, извеняюсь, что так долго не отвечал авторДопустим, под каждый тип оборудования мы делаем отдельную таблицу с отдельным набором атрибутов. Каждый тип оборудования мы свяжем с таблицей родителем - r_tech_equips, куда вынесем все общие признаки: код, название, тип оборудования, может что-то еще. Итого: +сколько то таблиц: тех. нитки, ГСК, скважины, ФА, стыки скважин, каждая из которых является подчиненной с родительской: r_tech_equips. Вот например попробуем связать скважины: r_tech_equip_types 1 - N r_tech_equips c_tech_wells 1 - N r_tech_equips Получается мы храним технологическое оборудование всех типов в r_tech_equips ? авторДальше мы должны как я понял - привязать технологическое оборудование к всяким кустам, месторождениям и так далее. Пусть первое тех оборудоваие - стыки скважин. Нам нужны скважины? r_wells +таблица связи скважин и оборудования c_well_equip Здесь немного не понял r_wells , нам нужна отдельная таблица для скважин? Или это подчиненная к r_tech_equips ? Насколько я вас понял нужно r_tech_equips связать с c_well_equip . Это мы свяжем скважину и грубо говоря участки, которые обследуют. Я может изначально непонятно объяснил у нас по сути есть: Местоположение объектов: Месторождение, газовый промысел, куст Объекты обследования: ГСК, скважины, ФА Правда недавно понял один момент. Обследуют например скважину и на каждом стыкам трубы делают замеры. Допустим у скважины 5 стыкам, делают 5 замеров и это всё ОДНО обследование. Так же на ФА и ГСК замеры идут по стыкам. То бишь получается от каждого типа оборудования идет связь 1 - n к стыкам. Bыходит следующие связи r_exam - замеры, c_wells_equip - стыки и связующая таблица обследований r_exam_tech_equip??? И как связать местоположение с оборудованием? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 13:50 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazan, nokazanПолучается мы храним технологическое оборудование всех типов в r_tech_equips? Да, так будет проще добавлять или работать со всем технологическим оборудованием В r_tech_equips выносят все общие признаки, как я уже и говорил, типа код, имя, тип, а в отдельные таблицы, связанные с r_tech_equips - уже специфичные для данного типа оборудования признаки. 1 доп таблица - 1 тип оборудования. nokazanЗдесь немного не понял r_wells, нам нужна отдельная таблица для скважин? Или это подчиненная к r_tech_equips? Скважина - это тип технологического оборудования? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 13:54 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверин, Да это тип технологического оборудования, но дело в том, что ФА и стыки это часть скважины ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 13:56 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazanОзверин, Да это тип технологического оборудования, но дело в том, что ФА и стыки это часть скважины а ФА и СТЫКИ - это тоже технологическое оборудование? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:04 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверин, Стыки участки на трубе скважины(технологического оборудования) и ФА тоже часть, но на ФА идёт отдельно обследуется и я незнаю добавлять его как отдельный тип или же делать подчиненную к r_teche_equips ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:07 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazan, надо в уме поиграть запросами Итак: родительская таблица тех оборудования: r_tech_equips(id, name, tech_type) Подчиненные таблицы: ФА - r_tech_sub_fas (id, tech_id, well_id), где tech_id - код из r_tech_equips, well_id - код скважины из r_tech_equips Стыки - r_tech_sub_joins (id, tech_id, well_id), где tech_id - код из r_tech_equips, well_id - код скважины из r_tech_equips Скважины - r_tech_sub_wells (id, tech_id), где tech_id - код из r_tech_equips Посмотрите на структуру, предположите, какие могут быть запросы, напишите эти запросы с этой структурой. Вам станет гораздо понятнее, подходит она или нет - отражает ли она реальную картину мира. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:13 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
Озверинnokazan, надо в уме поиграть запросами Итак: родительская таблица тех оборудования: r_tech_equips(id, name, tech_type) Подчиненные таблицы: ФА - r_tech_sub_fas (id, tech_id, well_id), где tech_id - код из r_tech_equips, well_id - код скважины из r_tech_equips Стыки - r_tech_sub_joins (id, tech_id, well_id), где tech_id - код из r_tech_equips, well_id - код скважины из r_tech_equips Скважины - r_tech_sub_wells (id, tech_id), где tech_id - код из r_tech_equips Посмотрите на структуру, предположите, какие могут быть запросы, напишите эти запросы с этой структурой. Вам станет гораздо понятнее, подходит она или нет - отражает ли она реальную картину мира. Надо дополнить, что с полем id из подчиненных таблиц можно работать только в коде или во временных данных, тогда как основной код будет из таблицы r_tech_equips. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:20 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
love_bachа что, газодобывающее предприятие до разработки вашей нетленки не вело эти обследования?нет никаких бумажных бланков/журналов/экселей, которые с этой задачей без "БД для газодобывающего предприятия" (отлично) справляются? на газодобывающем предприятии нет специалистов, которые, с одной стороны, имеют экспертизу, а с другой, возможно, нуждаются в каком-то инструменте, и которых расспрашивать требуется в 1-ю очередь? какая цель в итоге стоит? рисовать красивые отчетики для начальства? зачем нужна эта ваша "БД для газодобывающего предприятия"? PS не верю, что у газодобывающего предприятия совсем нет денег, чтобы нанять нормального специалиста. или ему нафиг не надо эту вашу "БД для газодобывающего предприятия" - похоже, что это очередной курсач, который вы пытаетесь тут с помощью форума запилить. PS2 вам в форум Работа надо: "есть 100 тыр, сделайте за меня курсач" Это не курсач, а реальная задача. Документы есть, но мне нужно сначала понять структуру БД, а потом уже добивать её атрибутами, и со специалистами мы стараемся работать, но пока идёт туго:) Основная цель автоматизировать задачи службы и централизованное хранение данных, т.к накапливается большие данные и с ними все сложнее оперировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:21 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazanмне нужно сначала понять структуру БД, а потом уже добивать её атрибутами Наоборот это делается. Сначала из документов и специалистов выжимаются сущности, атрибуты и связи, а потом по ним строится БД. И список задач, подлежащих автоматизации, играет в этом немаловажную роль. Потому что для некоторых задач БД может сводиться к единственной плоской табличке (дата обследования, объект обследования, протокол обследования). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:26 |
|
Прошу помощи в проектировании бд для газодобывающего предприятия
|
|||
---|---|---|---|
#18+
nokazan, всё зависит от того, какие наборы данных из БД будут извлекаться и по каким критериям поиска (положить данные в БД 1 раз и изредка их редактировать - не проблема при любой структуре) например, если "обследование" - это такой документ, то навскидку можно набить его в виде текста/RTF (если более структурированный - XML) и сохранить в одно поле типа BLOB одной таблицы (наверняка их нужно будет искать/фильтровать по каким-то атрибутам - таковые вынести в отдельные поля той же таблицы) сразу вопрос - если это не подходит, то почему конкретно? а описанную в первом посте иерархию объектов на первый взгляд можно засунуть в одну таблицу (с полями Id, ParentId, EntityType, Name и т.д.) и можно будет вывести пользователю всю иерархию в виде одного дерева ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 15:45 |
|
|
start [/forum/topic.php?fid=32&fpage=6&tid=1539971]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 406ms |
0 / 0 |