|
|
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые корифеи! Не удивляйтесь моему вопросу - ответ мне нужен для дипломного проекта. Я - студент из Киева. Не могу разобраться в очень простой ситуации. Как проектировать схему реляционной БД, если мне нужно моделировать связь между тем или иным значением конкретного атрибута в записи одной таблицы и наименованием сторонней таблицы (или даже именами группы таблиц!). Я так думаю, что такая связь выходит за рамки строгой реляционной модели. Но я никак не могу понять, как тогда моделируется примитивная ситуация, которая возникает во многих ПрО? Попытаюсь ее описать как смогу. Простите мне многословие, если что. Пусть ПрО - это регистратура в большой поликлинике в большом городе. Куча врачей, куча кабинетов, очередь стоит на регистрацию. Понятно, что все потребности больных регистрируются в одну таблицу РЕГИСТРАТУРА (КодПациента, КодВрача, КодДиагноза, …) подряд. В этой таблице сразу же формируется и их очередь в данный кабинет - или на исследования (на рентген, на УЗИ, на сдачу анализов, на ЭКГ и т.п.), или просто на прим к разным врачам (а наименований их - около 20, не говоря уже о структуре таблиц, каждая из которых отвечает за каждого врача). И что же мы имеем в итоге? Как я понял, типовую ситуацию. То, что зарегистрировано в простом списке (потоке) в таблице РЕГИСТРАТУРА(), со ссылками на справочник врачей, исследований, диагнозов и т.п. сущностей, должно строго связываться с разными сторонними таблицами. На руки больной получает сою очередь в конкретный кабинет конкретного врача - номерок. Все знают, что это - как билет на поезд. Тут все линейно и прозрачно. А вот дальше начинается самое интересное. Приложение же должно формировать подготовительные записи в куче формируемых новых таблиц! Если бы это была одна новая сводная (сплошная) таблица, то проблемы бы не было. Но это - 3-4 десятка разных таблиц! То есть, если атрибут КодВрача равен, скажем, 1 (больной пришел и зарегистрировался к простому терапевту), то нужно создать под него запись в таблице ПРИЕМ ТЕРАПЕВТА (), если атрибут КодВрача равен, скажем, 2 (больной пришел и зарегистрировался к кардиологу), то нужно создать под него запись в таблице ПРИЕМ КАРДИОЛОГА (). И так далее. И что ж получается? Получается, что ничем, кроме как наименованием (и само собой структурой-схемой), эти таблицы различить невозможно! Значит, нужно в справочник ВРАЧИ (КодВрача, Имя врача, ИмяСтороннейТаблицы) вносить нереляционную ссылку «имя сторонней таблицы». Потому, что по иному, как мне кажется, эти таблицы взаимодействовать не будут. А без этого - пролет работы приложения. Я уверен, что ситуация, описанная мною - типовая. И даже классическая. Но почему я ни в одном учебнике по РБД не могу найти ответ на этот вопрос? С чем я столкнулся? Что я еще думаю. Можно, конечно же, исходить не из таблицы-списка зарегистрированных больных при создании таблиц-приемов врачей, а наоборот. То есть, при формировании информации в приложении конкретного врача терапевта на его компе, прога может цеплять к открытой (текущей) таблице ПРИЕМ ТЕРАПЕВТА (КодВрача, ) фоновую таблицу РЕГИСТРАТУРА (КодВрача, ...) по конкретному значению атрибута КодВрача, прописанному прямо в листинг приложения. Но, как мне кажется, от этого нереляционность не отпадет - хрен редьки не слаще. А разделять «регистрационную» таблицу стразу же на кучу журналов по именам врачей (как делают, например, в ЗАГСЕ – там та же ситуация, кстати), нельзя ни в коме случае. Потому, что там работают процедуры проверки целостности и непротиворечивости очередей в кабинеты. А это можно сделать только на цельной таблице. Что это за ситуация? Где она описана, в каком учебнике? И как такое моделируют профессионалы по проектированию схем реляционных БД? Потому, что таких ПрО можно привести сотни в пример. Да, и прошу меня извинить, если совершенно аналогичный вопрос вы обнаружите на других форумах по БД. У меня горит диплом! Словом, помогите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 17:02 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановКак проектировать схему реляционной БД, если мне нужно моделировать связь между тем или иным значением конкретного атрибута в записи одной таблицы и наименованием сторонней таблицы (или даже именами группы таблиц!). На это есть простой вопрос: ТАК проектировать схему БД - не нужно. Не нужно "структуры таблиц, каждая из которых отвечает за каждого врача". Одна таблица на всех врачей. Одна таблица на прием ко всем врачам. С какого перепугу у тебя таблицы разных специалистов отличаются структурой? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 18:02 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, ты прочитал всё что в стартовом посте написано?! я только топик открыл, сразу потемнение в глазах, очнулся в камышах, одного зуба нет, какие-то свежие татухи и баба голая в лодке валяется с примотанными пластырем к рукам двумя береттами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 18:46 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
оффты прочитал всё что в стартовом посте написано?! Более-менее. Я таки надеялся найти оправдание для разнесения разных врачей по разным таблицам. Не нашёл. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 18:58 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovБолее-менее. Я таки надеялся найти оправдание для разнесения разных врачей по разным таблицам. Не нашёл. Разносятся не врачи, а приемы врачей разных специальностей. Прием - это сущность со "снятыми" в ходе обследования атрибутами. Понятно, что "прием терапевта" имеет несколько иной набор атрибутов, чем "прием кардиолога". Так что вопрос сводится к классическому - куча таблиц с (по сути) общим предком ("прием специалиста"), содержащим общие атрибуты, и различными конкретными наследниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 20:25 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherПрием - это сущность со "снятыми" в ходе обследования атрибутами. А какой смысл раскладывать снятые атрибуты по отдельным полям? Гораздо проще весь лог приёма свалить в BLOB. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 20:51 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА какой смысл раскладывать снятые атрибуты по отдельным полям? Гораздо проще весь лог приёма свалить в BLOB. Ну не знаю. А может, ему зададут среднюю температуру по больнице одним запросом вычислить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 21:04 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Cane Cat Fisher, представь себе что атрибут приема у врача, это не физический параметр (как наличие руки или ноги). его можно в любой момент отнять или добавить, или видоизменить. сам атрибут приема - элемент справочника. каждому врачу накиданы/навешаны/присвоены атрибуты приемов. даже не врачу, а "одной из работ/услуг которые выполняет врач". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2012, 21:15 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Уважаемый г-н Dimitry Sibiryakov! Так вопрос именно в этом. В описанных предметных областях (ПрО) невозможно сделать единой таблицу ПРИЕМ_ВРАЧЕЙ(). Если бы можно было, то все было бы линейно и просто. Проблема в том, что у каждого врача - своя структура таблицы. Они очень отличаются - как холодильник от бутылки водки и от туристической палатки. Поэтому группируются в одну только таблица ТЕРАПЕВТ(), КАРДИОЛОГ(), УРОЛОГ() и т.п. А если же их просто принудительно примитивно состыковать между собой (не соединить, а именно состыковать!), то полученное одоробло будет очень разреженным - как разреженная матрица. А это - тоже фигня. Дикая избыточность. Так точно нельзя. Да и ворочаться такой монстр будет жутко медленно. Представьте себе табличку, в которой по 10 атрибутов умножены на 50 разнообразий - 500 атрибутов практически всегда нули. А в день проходит через регистратуру такого ателье (а что поликлиника, что ателье. что ЗАГС, что супермаркет - все едино) 1000 посетителей. Ну и что это будет за БД? Очень прошу, подскажите - в каких статьях такое описано? Дайте ссылочку плиз. Потому что мне в этом интерсует не метод программистского решения (их - множество), а именно теоретический анализ проблемы РМД. У меня диплом на тему проектирования схем БД (а не программирования приложений). Помогите ссылочкой! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 18:12 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановВ описанных предметных областях (ПрО) невозможно сделать единой таблицу ПРИЕМ_ВРАЧЕЙ(). Проблема в том, что у каждого врача - своя структура таблицы. Они очень отличаются - как холодильник от бутылки водки и от туристической палатки. Докажи. Покажи таблицы терапевта и уролога. Алекс-р ИвановОчень прошу, подскажите - в каких статьях такое описано? Для полных чайников. У тебя недостаточно глубоко произведено выделение сущностей. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 18:23 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Ну так давайте просто порассуждаем. Пусть мы можем с вами скрестить ужа с ежом. Пусть в эту таблицу-решето войдут все услуги предоставляемые такой поликлиникой-ателье. И УЗИ, И вырывание зубов, и ЭКГ, и прием всех врачей. Тогда такое огромедное решето будет же очень медленно работать, если таких клиентов к нему - пару сотен врачей одновременно! Это - раз. А второе - получается все та же нереляцоинная ссылка, что и в моем описании. Только она замаскирована в листинге запроса. Какая же разница, а? Ведь все равно же при загрузке приложения на рабочем месте скажем УЗИста процедура запроса в соответствии с значением кода услуги из справочника ИССЛЕДОВАНИЯ (КодУслуги, ...), скажем, 15 - УЗИ, врач-узист получает доступ к отфильтрованному решету. Ему то ведь сто лет в обед не нужно трогать записи в решете об посещении терапевтов, кардиологов и т.п. Что же получается? Та же нереляционная ссылка. То же самое взаимодействие данных и метаданных. Только не в явном виде прямо в справочнике, а замаскировано в листинге хранимой "на века вечные" процедуры запроса. Так что никуда от такого фильтра не деться. Хоть в лоб, хоть по лбу. Ведь так? Поэтому прошу не отвлекаться от вопроса нереляционной ссылки. Она обязательно имеет место. Прошу просто подсказать, где такое описано, если вообще описано... Сейчас, после 3 дней дискуссии в 6 основных форумах, я в этом сильно засомневался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 22:42 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановПроблема в том, что у каждого врача - своя структура таблицы Давайте для начала свою версию своей нетленки. А то пока что это выглядит как бред сумасшедшего, уж извините. Будем по факту наваянного тыкать и искать ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 23:21 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Вы, Алекс-р Иванов, переплюнули всех, кто здесь когда-либо что-либо писал. Глупых сообщений было достаточно, но одновременно безаппеляционных и настолько глупых - нет, не помню. > Ну так давайте просто порассуждаем. Давайте. Начните с чтения литературы. Например, с МКБ-10. Постарайтесь осознать, что физиологическое строение человека стереотипно. Уникальные органы - отклонение, а не норма. Физиологические параметры (химические, электрические и пр.) также имеют предсказуемый разброс. Массовые процедуры диагностики, терапии и пр. - стандартный процесс. Ваша задача - этот процесс описать. На самом деле это простая задача. Я не знаю, чему вас все это время учили, но первое, что вы должны уметь делать, - составлять семантически корректное описание задачи. Вот этим и займитесь. > Прошу просто подсказать, где такое описано, если вообще описано... К. Дж. Дейт, "Введение в системы баз данных". Это букварь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2012, 23:41 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановНу так давайте просто порассуждаем. Пусть мы можем с вами скрестить ужа с ежом. Пусть в эту таблицу-решето войдут все услуги предоставляемые такой поликлиникой-ателье. И УЗИ, И вырывание зубов, и ЭКГ, и прием всех врачей. А почему несправедливо проигнорирован вариант, когда тип услуги вынесен в отдельную таблицу? И что будет, если терапевт и кардиолог проверят у одного и того же пациента, например, ТПД? А потом хирург захочет узнать, каким же был ТПД у пациента до того, как несчастный таки попал под скальпель? Ведь у каждого специалиста своя структура таблицы... Хотя, пожалуй, на горящем дипломе думать некогда, пилить надо © ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 00:55 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Я решил свою проблему. Описанный мною процесс - это действительно классика. Только назван он денормализацией. И ни о каком выходе за пределы РМД речь не идет. http://www.lcard.ru/~nail/sybase/perf/1088.htm "Как правило, горизонтальное разделение ... требует различные имена таблиц в запросах, в зависимости от значений в таблице" Я надеюсь, статья от Сайбес ни у кого не вызовет недоверия? Оказалось, что таких статей в инете - куча. Но помощь эту я получил не от форумов России. Везде одна и та же картина. Жаль, что корифеи оказались столь не начитанными... И по поводу того, что любому врачу ОБЯЗАТЕЛЬНО нужен навязанный доступ ко всем данным пациента - вот это по настоящему безапеляционная глупость! Получить ответ на запрос - это само собой. Но зачем, спрашивается, "молотить" терапевту информацию о пломбе 7-го нижнего? Или знать результаты операции на мизинце? Вот это - 100 процентный бред! И как же вы, интересно, иначе отфильтруете из вашего решета все эти сведения? Только значением кода врача (то бишь пользователя приложения). А это - что? Это и есть нереляционная ссылка. Значение кода врача ведь берется из справочника врачей данной поликлиники. А кто его формирует? Сисадмин. А какое отношение сисадмин имеет к листингу тригера фильтра решета? НИКАКОГО! Значит, запрос на это значение прошивается в тригер изначально разработчиком. А тригер, получив само значение, может фитльтровать решето на данном пользовательском месте. Вот я и говорю - те же, только сбоку... Словом, всем спасибо... Все мне очень помогли ... зарядом злости, который дал возможность прогнуться перед преподом "соседнего" ВУЗа, дать ему коньяк и просто по детски спросить, где такое может быть? Но при этом показать ему (посредством этих форумов), что узнать у коллег хоть что то серьезное и нестандартное практически невозможно! Но тогда, в чем смысл таких форумов, а? В забалтывании проблемы?... Очень всем спасибо за науку о форумах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 12:29 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
> Я решил свою проблему. Нет, Алекс-р Иванов, вы не решили свою проблему. Вы как не имели, так и не имеете ни малейшего представления о проектировании. > И как же вы, интересно, иначе отфильтруете из вашего решета все эти сведения? Решето у вас в голове. Ваша задача имеет простое традиционное решение. И ограничение доступа - тоже стандартная задача. > узнать у коллег хоть что то серьезное и нестандартное практически невозможно! Думаете, кто-то из присутствующих обрадован тем, что вы записали его в коллеги? Дружище, никто не будет заниматься вашим образованием на общественных началах. Имеете конкретный вопрос - задайте, получите конкретный ответ. Читать вам лекции по курсу проектирования... напишите в форум "Работа", может, и найдутся желающие. > Но тогда, в чем смысл таких форумов, а? В обмене знаниями, разумеется. Не очевидно? Но у форумов есть еще и воспитательная функция. Светы из Иваново должны иметь представление об уровне собственной подготовки и иметь соответствующую самооценку. Польза обсуждения в данном случае для вас просто невероятна: вы получили исчерпывающее представление о вашем уровне знаний: плинтус - это если оптимистично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 12:54 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р Ивановзачем, спрашивается, "молотить" терапевту информацию о пломбе 7-го нижнего? Затем, что из пломбы может утекать мышьяк, который и приводит к наблюдаемым терапевтом судорогам, тошноте и т.п. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 13:11 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановОписанный мною процесс - это действительно классика. ... Ну что же - одним классиком больше. Правда само описание, возможно, следует отнести к каком-нибуть сю реализму. Фраза "связь между тем или иным значением конкретного атрибута в записи одной таблицы и наименованием сторонней таблицы" произвела впечатление как преодление всех стереотипов и догм не тока РМД, но и вообще. Мои восхисчения тем, кто его осилил описание до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 13:53 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановНо тогда, в чем смысл таких форумов, а? В забалтывании проблемы?...Смысл в помощи людям в решении проблем. Но вы же сами лучьше всех всё знаете, зачем вам помощь? Вы помогающих разве что дибилами не обозвали :-) ЗЫ, То, что вы написали выше - полный бред от начала до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 14:59 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
alexeyvgТо, что вы написали выше - полный бред от начала до конца. Может быть это новое слово в денормализации? Только пока разобрать его не могу ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 15:38 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovАлекс-р Ивановзачем, спрашивается, "молотить" терапевту информацию о пломбе 7-го нижнего? Затем, что из пломбы может утекать мышьяк, который и приводит к наблюдаемым терапевтом судорогам, тошноте и т.п. Мышьяк - это еще ерунда. Читал когда-то о реальном случае в середине 20-го века в США, когда пациент попал к психиатру: "Голоса в голове" настойчиво советовали ему приобретать различную бытовую технику. Оказалось, недавно поставленная пломба образовала полупроводник, и получился простейший детекторный приемник. А по соседству шпарила мощная рекламная радиостанция... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2012, 16:36 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Алекс-р ИвановА какое отношение сисадмин имеет к листингу тригера фильтра решета? Жаль, что корифеи оказались столь не начитанными... Я бы вынес это эпиграфом к топику... Алекс-р ИвановВсе мне очень помогли ... зарядом злости, который дал возможность прогнуться перед преподом "соседнего" ВУЗа, дать ему коньяк и просто по детски спросить, где такое может быть? И что он Вам ответил? Нет, позвольте сам догадаюсь: "Я люблю коньяк сам по себе, не надо портить впечатления от нашей встречи пришитыми мизинцами, гнилыми семерками и статьями Сайбейс!" Или он Вам таки рассказал как надо? Алекс-р ИвановЯ решил свою проблему Это ему кажется (с) Вот и приходят товарищи молодые специалисты кандидатами на работу, которые говорят словами из эпиграфа и обижаются на отказ. Правда с моей колокольни это "ничего не знаю, ничего не умею, диплом за коньяк, но 50к (это в Питере) мне вынь и положь!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2012, 09:21 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
Sgt.PepperАлекс-р ИвановЯ решил свою проблему Это ему кажется (с)Почему кажется? Решил ведь - зачёт за коньяк, вполне недорого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2012, 15:18 |
|
||
|
Связь между значением атрибута в записи одной таблицы и наименованием сторонней таблицы
|
|||
|---|---|---|---|
|
#18+
alexeyvgПочему кажется? Решил ведь - зачёт за коньяк, вполне недорого. Потому что не зачёт был его проблемой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2012, 15:45 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=46&tid=1541590]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
84ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 380ms |

| 0 / 0 |
