الانتقال إلى المحتوى

مساعدة لتصميم Erd لمشفىَ .. Design A Erd For The Hospital


Zahoori Nazo

Recommended Posts

 

السلام عليكم و رحمة الله و بركاته ,

 

عندي اسايمنت و رسمت له الـ ERD 

بسَ المشكلة إن في بعض الأشياء مو متاكدة منهاَ ..

لان احتاج اسوي mapping & normalization 

و كلهم يعتمدون على الـ ERD

 

 

هذا نص الاسايمنتَ :

 

146168859347531.png

 

و هذا الحل إلا سويتهَ :

 

342397323.png

 

 

 

 

مثلاً من بعض الأمور إلا ما فهمتها :

 

1. الـ medical service ، كاتبينَ إن الـservice الواحدة لها عدة أسماء ..

لكن الـأسماء هي نفسها الـ partial key تبع الـ service ، فهل تكون multiple attribute ؟

أو أني أخلي الـ partial key بروحه وَ بقية الأسماء لنفس الـ service في attribute بروحه ؟

 

 

2. الـ contract ، شنوَ أفضل partial key حقهاَ ؟ ( إذا كانت تضبط أنها تصير كـ week entity )

و إذا ما تصير كـ week entity ، هلَ ينفع أن تكون كـ relation و فيها الـ attribute مالهاَ + اضيف الـ supervisor 

ليها و يكون كـ composite attribute ؟

 

 

3. و شنو المقصود بأن الـ supervisor يتغير على حسب فترة العقد ؟ ( الفقرة الرابعة )

 

و إذا كانَ ممكن أحد يتأكد لي من حلي الكليَ للمسألة إذا كان صحيح أو به عيوب أو اخطاءَ أكون شاكرة لهَ 

 

و شكراً جزيلاً مقدماً :)

 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

- بالنسبة لmedical service

من الممكن ان يكون هناك اسم خدمه واحد ( أو أكثر من أسم خدمة )  بديل لأسم الخدمة الأساسي ... ( بإفتراض أن عدد الأسماء غير محدد )  

 

- اعتبار ان العلاقه من نوع self join 

أي  الentity  تتكون من 

(  service name  ( primary key

  service description -

-  (main service name ( foreign key with service name in the same Entity - 

 

من الأفضل ان يكون مفتاح الجدول primary key  

 يكون هناك ترميز للخدمات SERVICE_CODE

 

 

------------------

 contract 

 

contract_id    primary key

contract start date 

contract end date 

 contract description 

 

new entity

 contract_supervisors

 

  contract_id       foreign key with contract entity 

 supervisor_id   foreign key with supervisors entity 

  joining_date 

 

contract_id + supervisor_id ==== composite key

 

------------------

من الممكن أن يتم تغيير المشرف خلال فترة تنفيذ العقد للإشراف على مراحل العمل بالعقد ( سنة أو أكثر ) 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

- بالنسبة لmedical service

من الممكن ان يكون هناك اسم خدمه واحد ( أو أكثر من أسم خدمة )  بديل لأسم الخدمة الأساسي ... ( بإفتراض أن عدد الأسماء غير محدد )  

 

- اعتبار ان العلاقه من نوع self join 

أي  الentity  تتكون من 

(  service name  ( primary key

  service description -

-  (main service name ( foreign key with service name in the same Entity - 

 

من الأفضل ان يكون مفتاح الجدول primary key  

 يكون هناك ترميز للخدمات SERVICE_CODE

 

 

------------------

 contract 

 

contract_id    primary key

contract start date 

contract end date 

 contract description 

 

new entity

 contract_supervisors

 

  contract_id       foreign key with contract entity 

 supervisor_id   foreign key with supervisors entity 

  joining_date 

 

contract_id + supervisor_id ==== composite key

 

------------------

من الممكن أن يتم تغيير المشرف خلال فترة تنفيذ العقد للإشراف على مراحل العمل بالعقد ( سنة أو أكثر ) 

 

 

شكراً أخيَ  :)  ..

 

- اعتبار ان العلاقه من نوع self join 

أي  الentity  تتكون من 

(  service name  ( primary key - 

  service description -

-  (main service name ( foreign key with service name in the same Entity - 

 

كيفَ أعتبرَ الـ service name كـ ( primary key ) ؟

موَ المفروض يكون كـ ( partial key ) لأنَ الـ medical service هو عبارة عن week entity ؟

وَ الـ ( foreign key ) تكون تبعَ الـ service name ؟

 

ما فهمتَ قصدك لو توضحه برسم أو تفصيل أكثر من ناحية هالنقطةَ  :D .

 

contract 

 

contract_id    primary key

contract start date 

contract end date 

 

 contract description 

 

 

منَ فين جبناَ الـ ( contract_id ) ؟ غير موجودة في صياغ الأسايمنتَ :)

 

 

 

 

new entity

 contract_supervisors

 

  contract_id       foreign key with contract entity 

 supervisor_id   foreign key with supervisors entity 

  joining_date 

 

contract_id + supervisor_id ==== composite key

 

 

 

امممَ ، من فين جبناَ الـ ( supervisor_id ) ، فيهَ له الـ ( cpr ) فقطَ ..

هل هذا يعني إن عادي اضيف attribute اضافية حتى أكمل الناقص في المسألة ؟

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

يمكنك اضافة اي attribute   تراه مفيد للحل .... مع ذكر هذه الإضافات الجديدة كملاحظة في نهاية عرضك 

 

مثل  جدول بيانات العقد 

 

اقتراح ان يكون هناك attribute جديد يعبر عن مفتاح الجدول primary key 

وممكن ان يكون رقم مسلسل للعقد  contract_id or contract_no 

 

ايضا من الممكن أن يكون رقم مسلسل العقد سنوي ... بمعنى ان يبدأ تسلسل رقم العقد مع بدايه كل سنة جديدة مثل 

2015   001

2015   002

 

2016   001

2016   002

 

في المثال السابق سيكون مفتاح الجدول مركب من رقم السنة ورقم مسلسل العقد معا 

 

ويالمثل يمكن أن يكون رقم مسلسل العقد مرتبط بالمستشفى 

-----------------------

جدول ال medical service

 

(  service_code  ( primary key - 

  service description -

-  (main_service_code ( foreign key with service_code in the same Entity - 

 
 

 service_code  service description     main_service_code

----             M0100        Medical Care

M0101        MEDICAL CARE 101   M0100

M0102        MEDICAL CARE 102   M0100

M0103        MEDICAL CARE 101   M0100

 

   -----                   S0200         Surgery

                   S0201         Surgery_type1          s0200

   S0202         Surgery_type2          s0200

 

 others 

          C03 -Consultation

D04 -Diagnostic X-Ray

D05 -Diagnostic Lab

B10 -Blood Charges

رابط هذا التعليق
شارك

 

السلام عليكم ورحمة الله 

 

يمكنك اضافة اي attribute   تراه مفيد للحل .... مع ذكر هذه الإضافات الجديدة كملاحظة في نهاية عرضك 

 

مثل  جدول بيانات العقد 

 

اقتراح ان يكون هناك attribute جديد يعبر عن مفتاح الجدول primary key 

وممكن ان يكون رقم مسلسل للعقد  contract_id or contract_no 

 

ايضا من الممكن أن يكون رقم مسلسل العقد سنوي ... بمعنى ان يبدأ تسلسل رقم العقد مع بدايه كل سنة جديدة مثل 

2015   001

2015   002

 

2016   001

2016   002

 

في المثال السابق سيكون مفتاح الجدول مركب من رقم السنة ورقم مسلسل العقد معا 

 

ويالمثل يمكن أن يكون رقم مسلسل العقد مرتبط بالمستشفى 

-----------------------

جدول ال medical service

 

(  service_code  ( primary key - 

  service description -

-  (main_service_code ( foreign key with service_code in the same Entity - 

 
 

 service_code  service description     main_service_code

----             M0100        Medical Care

M0101        MEDICAL CARE 101   M0100

M0102        MEDICAL CARE 102   M0100

M0103        MEDICAL CARE 101   M0100

 

   -----                   S0200         Surgery

                   S0201         Surgery_type1          s0200

   S0202         Surgery_type2          s0200

 

 others 

          C03 -Consultation

D04 -Diagnostic X-Ray

D05 -Diagnostic Lab

B10 -Blood Charges

 

 

شكراً جزيلاً أخي ..

 

يمكنك اضافة اي attribute   تراه مفيد للحل .... مع ذكر هذه الإضافات الجديدة كملاحظة في نهاية عرضك 

 

بَ النسبة لإضافة attribute جديدة غيرَ مذكورة في الفقرةَ أو النص ..

استفسرتَ من الدكتورة و خبرتني إن هذا غيرَ ممكن أبداً ، لازمَ اتقيد فقطَ بالـ attribute 

المذكورة في النص فقط  ^_^ 

 

 

 

وأفكاركَ جميلاً فعلا و تتيح الحل بشكل سلسلَ ، لكنَ الـ Contract 

و أيضاً الـ medical service الأثنين يعتبرونَ ( week entity ) ، أي أنهمَ

يعتمدون علىَ الـ hospital و بينهم و بينَ الـ hospital هو ( week relation )

 

هل من حلول أخرىَ بدون إضافة attribute جديدة ؟

+ الـ contracts و الـ medical service لا يمكنَ  يكون عندهم ( primary key )

فكيف اتعامل معاهم في هذي الحالة ؟

رابط هذا التعليق
شارك

 

السلام عليكم ورحمة الله 

 

مرفق رسمتين 

physical data model

ERD

 

-----------------------

جدول ال contract 

مفتاح الجدول primary key   مكون من ( medical_company_name  + contract_start_date ) 

وذلك لاحتمالية وجود أكثر من تعاقد مع نفس الشركة 

----------------

جدول ال Contract_Supervisor

مفتاح الجدول primary key 

composite key 

primary key of contract + primary key of supervisor

--------------------------------

عمل جدول جديد بالأسماء الأخرى لنفس الخدمة الطبية

 service_others_names

-------------------------------------------------------

 

صور مصغرة مرفقة

  • post-8382-0-04264600-1461871249_thumb.jp

  • post-8382-0-79939500-1461871296_thumb.jp
  •  

 

رابط هذا التعليق
شارك

 

السلام عليكم ورحمة الله 

 

مرفق رسمتين 

physical data model

ERD

 

-----------------------

جدول ال contract 

مفتاح الجدول primary key   مكون من ( medical_company_name  + contract_start_date ) 

وذلك لاحتمالية وجود أكثر من تعاقد مع نفس الشركة 

----------------

جدول ال Contract_Supervisor

مفتاح الجدول primary key 

composite key 

primary key of contract + primary key of supervisor

--------------------------------

عمل جدول جديد بالأسماء الأخرى لنفس الخدمة الطبية

 service_others_names

-------------------------------------------------------

 

صور مصغرة مرفقة
  • post-8382-0-04264600-1461871249_thumb.jp
  • post-8382-0-79939500-1461871296_thumb.jp
  •  

 

 

شكراً أخي على المساعدة ..

 

جدول ال contract 

مفتاح الجدول primary key   مكون من ( medical_company_name  + contract_start_date ) 

 

وذلك لاحتمالية وجود أكثر من تعاقد مع نفس الشركة 

 

قصدكَ هناَ ، إن الـ  ( contract ( week entity  وَتعتمد على الـ medical company ؟

فَ العلاقة بينَ الـ contract و medical company  تكون ( week relation ) هيَ { associate } ؟

 

post-8382-0-79939500-1461871296.jpg

 

** سؤال : ليشَ خليناَ الـ supervisor_name هو الـ primary key ؟

موَ المفروض الـ CPR أقوىَ و أفضل كـ primary key ؟

 

** سؤال : الـ service other name ، أضفتها كـ ( multi-value attribute ) 

في الـ medical service أو أحطها كـ entity جديدةَ في الـ ER diagram ؟

 

+ لحدَ الأن لم اطبق الـ mapping + normalization على الـ ER diagram ، فلسىَ

باقي وقت على الجداولَ ، بس شكراً كثيراً احسهم بينفعوني جداً في المستقبل  B) 

 

 

حاولت أعدل الـ ER diagram علىَ أفكاركَ ، و هذا إلا طلع معيَ :

 

 

472875982.png

 

هل شغلي صحَ ؟

ممكنَ تعدل لي الأغلاط ..

+ الأسئلة إلا فوقَ ، ما اضفتها لحدَ الآن في ER

انتظر تعديلكَ ، و شكراً  :) 

 

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

تم تعديل الرسم السابق للتعامل مع ال cpr  كمفتاح لentity  ال patient وكذلك  ال supervisor

-----------------------------------------------

 

ملاحظات :

 

 

There must be always a supervisor for each contract, but the contract supervisor can change over the lifetime of the contract.

 

 اي ان العلاقة بين ال supervisor  و contract من نوع  many to many 

ولذك تم انشاء entity

 Contract_Supervisor

وبالتالي ستوجد علاقتين مع Contract_Supervisor  كل منهما one to many 

 

--------------------------------------------------------

 

 

once a patient books an appointment for a given service from a specific hospital 

 

معنى ذلك ان للحصول على موعد يجب ان يرتبط بتحديد نوع الخدمة من جدول الخدمات  ...  ولأن الخدمة مرتبطه بمستشفى محدده  .... 

فالعلاقة بين entity  ال appointment  و   hospital entity  تكون من خلال entity  services_price

hospital_pdm.jpg

hospital_erd.jpg

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

تم تعديل الرسم السابق للتعامل مع ال cpr  كمفتاح لentity  ال patient وكذلك  ال supervisor

-----------------------------------------------

 

ملاحظات :

 

 

There must be always a supervisor for each contract, but the contract supervisor can change over the lifetime of the contract.

 

 اي ان العلاقة بين ال supervisor  و contract من نوع  many to many 

ولذك تم انشاء entity

 Contract_Supervisor

وبالتالي ستوجد علاقتين مع Contract_Supervisor  كل منهما one to many 

 

--------------------------------------------------------

 

 

once a patient books an appointment for a given service from a specific hospital 

 

معنى ذلك ان للحصول على موعد يجب ان يرتبط بتحديد نوع الخدمة من جدول الخدمات  ...  ولأن الخدمة مرتبطه بمستشفى محدده  .... 

فالعلاقة بين entity  ال appointment  و   hospital entity  تكون من خلال entity  services_price

 

شكراً أخيَ ..

 

أنت حطيت هناً : http://www.araboug.org/ib/uploads//monthly_04_2016/post-102-0-65976800-1461929054.jpg

 

إن الـ Contract عندها PK و هو الـ start date صحَ ؟

بس في النص مو موضح إن الـ start date هوَ الـ PK ..

 

فَ مو الأفضل تكون الـ Contract عبارة عنَ ( week entity ) ؟

وَ الـ start date يكونَ partial key لهاً ..

 

** لأن الـ entity إلا مو محددَ لها الـ primary key في النص تبعَ الاسايمنتَ

ما اقدر احط له primary key على كيفيَ .. فَ اختار له key وتكون week entity :)

 

نفسَ الشيءَ حقَ الـ medical Service ، المفترض تكون week entity ..

بسَ الـ list of other names ، ما فهمتَ أنت شلون حطيتهاً في erd إلا صممتها أنتَ ..

ليش حطيتها في entity لحالهاَ ؟ شلون ارسمها بطريقةَ رسمتي السابقة ، لأن البرنامجَ

إلا تستخدمه في الرسم صعب علي افهمه ممكنَ توضخ لي بطريقة البرنامج إلا انا استخدمه شلون بكونَ ؟

رابط هذا التعليق
شارك

السلام وعليكم ورحمة الله

 

البرنامج المستخدم هو power designer   يمكنك تنزيله واستخدامه في إعدادات رسمة ال ERD

والبرنامج يحتوى أكثر من أسلوب لعرض عناصر واشكال الرسم والعلاقات بينها 

-----------------------------

 

-   الـ Contract عبارة عنَ ( week entity )  و الـ start date يكونَ partial key لهاً ..

وال attribute بأسم medical company name  هو الجزء الأول من ال composite key لل Contract

 

----------------------------------------------

بالنسبة ل list of other names

 

لا يوجد تغيير في رسمتك لتمثيل  multivalued attribute

 

ولتوضيح كيفية تمثيل ال  multivalued attribute

 

يتم إنشاء entity  جديدة

وتكون العلاقة  بين medical services  وال new entity من نوع one to many   

 

وفي رسمة  ال ERD  تم عمل  new week entity 

بأسم service other names 

وال attribute بأسم service another name  يكون ال  partial key لها

وال attribute بأسم service name  هو الجزء الأول من composite key لل  service other names

كما هو في موضح  الرسم السابق

رابط هذا التعليق
شارك

السلام وعليكم ورحمة الله

 

البرنامج المستخدم هو power designer   يمكنك تنزيله واستخدامه في إعدادات رسمة ال ERD

والبرنامج يحتوى أكثر من أسلوب لعرض عناصر واشكال الرسم والعلاقات بينها 

-----------------------------

 

-   الـ Contract عبارة عنَ ( week entity )  و الـ start date يكونَ partial key لهاً ..

وال attribute بأسم medical company name  هو الجزء الأول من ال composite key لل Contract

 

----------------------------------------------

بالنسبة ل list of other names

 

لا يوجد تغيير في رسمتك لتمثيل  multivalued attribute

 

ولتوضيح كيفية تمثيل ال  multivalued attribute

 

يتم إنشاء entity  جديدة

وتكون العلاقة  بين medical services  وال new entity من نوع one to many   

 

وفي رسمة  ال ERD  تم عمل  new week entity 

بأسم service other names 

وال attribute بأسم service another name  يكون ال  partial key لها

وال attribute بأسم service name  هو الجزء الأول من composite key لل  service other names

كما في  موضح  الرسم السابق

 

 

6a0705161462610192281.png

 

عدلت شعلة في الرسمة ، العلاقة بينَ الـ Contract و medical company حطيتهاً هيَ ( week relation - associate )

وَ غيرتَ العلاقة بينَ الـ hospital و contract لَ علاقة عادية ( normal relation - has )

هل هذا صحيح أم عملي السابق هو الصحَ ؟

 

+ بالنسبة لَ List of other name ، أنا حاطتنهاً كـ ( multi value attribute ) في الـ medical service ..

هل أكنسلهاً ، و أحطها كَ entity جديدةَ بَ اسم ( other name ) و احطها لهاَ attribute كَـ ( name , discretion ) ؟

أمَ شعلي الحالي صحيح و ما يحتاج تعديلَ ؟

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله 

 

يلاحظ ان العلاقة بين Contract و medical company 

هي من نوع one to many 

وذلك لاحتمالية وجود أكثر من تعاقد مع نفس الشركة 

-----------------------

حسب طريقة الرسم المطلوبه منكم .... يمكن الإبقاء على تمثيل ال  ( multi value attribute ) في الـ medical service ..

وبعد ذلك يتم التعامل معها عند ال mapping  ك جدول مستقل 

رابط هذا التعليق
شارك

 

السلام عليكم ورحمة الله 

 

يلاحظ ان العلاقة بين Contract و medical company 

هي من نوع one to many 

وذلك لاحتمالية وجود أكثر من تعاقد مع نفس الشركة 

-----------------------

حسب طريقة الرسم المطلوبه منكم .... يمكن الإبقاء على تمثيل ال  ( multi value attribute ) في الـ medical service ..

وبعد ذلك يتم التعامل معها عند ال mapping  ك جدول مستقل 

 

و عليكمَ السلام و رحمة الله و بركاته ,

شكراً جزيلاً للمساعدة ..

 

هذا أخر شكل لَ ERD :

 

050705161462621535171.png

 

و حاولت أعمل mapping لَ ERD :

* ممكنَ تتأكد لي إن كان الـ mapping صحيحَ أو لاَ ، و شكراً ..

 

·        Mapping of E-R diagram :

 

( Hospital ( Hname , address , HTel , fax , email

( Medical service ( Hname , MSname , description

( Contract ( Hname , start date , end date , contract text ,  Scpr , Cname

( Supervisor ( Scpr , Sname

( Medical company ( Cname , country , Hname , MSname

( Appointment ( AppID , appointment date , Hname , MSname , Pcpr

( Patient ( Pcpr , Pname , PTel

( Offered ( Hname , Sname , price

( Other medical services name ( Hname , MSname , other services name

 

Primary key :

  Hospital : Hname

Medical-service : Hname and MSname

 Contract : Hname and Start date

Supervisor : Scpr

Medical-company : Cname

Appointment : AppID

Patient : Pcpr

Offered : Hname and MSname

Other medical Services name : Hname and MSname and Other services name

 

 : Foreign key

 

Hospital : Non

 

 : Medical service

 .( Hname -- form Hospital ( Hname

 

: Contract

.(Hname -- form Hospital ( Hname 

.( Scpr -- form Supervisor ( Scpr

.(Cname -- form Medical company ( Cname

 

Supervisor : Non

 

 : Medical company

Hname -- form Hospital ( Hname

 .( MSname -- form Medical Service ( MSname

 

 : Appointment

 .( Hname -- form Hospital ( Hname

.( MSname -- form Medical Service( MSname

 .( Pcpr -- form Patient ( Pcpr

 

Patient : Non

 

 : Offered

.( Hname -- form Hospital ( Hname

.( MSname -- form Medical Service( MSname

 

 : Other medical Services name 

.( Hname -- form Hospital ( Hname

.( MSname -- form Medical Service( MSname

 

.( Hname -- form Hospital ( Hname

.( MSname -- form Medical Service( MSname

تم تعديل بواسطة Zahoori Nazo
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية