طراحی نمودار er برای پروژه مدیریت هتل

omid-boy

کاربر تازه وارد
تازه وارد
سلام خدمت همه دوستان
واسه پروژه مدیریت هتل با زبان C# و بانک SQL server میخوام یه نمودار ER طراحی کنم
خودم اینو طراحی کردم ولی رابطه هاو نمیدونم
لطفا کمک کنید
واسه پروژه پایانی هست
eer.jpg
اینو طراحی کردم ولی یه نمودار مثل این عکس پایینی میخوام
 

پیوست ها

  • 97.2 کیلوبایت بازدیدها: 41

blackpage

کاربر تازه وارد
تازه وارد
پاسخ : طراحی نمودار er برای پروژه مدیریت هتل

ببین دوست عزیز , هر کدوم از اون مربع هایی که کشیدی یک جدول محسوب میشند.
هر جدول یک کلید داره که دیگه اینارو میدونی...
الان من نگاه کردم دیدم جدول کارکنان واسه خودش تنهاست. خوب نمیشه که, باید ارتباطش بدی..
شما باید یک جدول پذیرش درست کنی.
این جدول کلید خاصی نمیخواد , بلکه در این جدول شما ستونهایی درست کنی که برای سه جدول دیگه کلید محسوب مشن.
یعنی بیایی این جدول پذیرشو بهانه ای برای مرتبط کردن این سه جدول قرار بدی.
حالا اگر متوجه نشدی بگو.
 

omid-boy

کاربر تازه وارد
تازه وارد
پاسخ : طراحی نمودار er برای پروژه مدیریت هتل

ببین دوست عزیز , هر کدوم از اون مربع هایی که کشیدی یک جدول محسوب میشند.
هر جدول یک کلید داره که دیگه اینارو میدونی...
الان من نگاه کردم دیدم جدول کارکنان واسه خودش تنهاست. خوب نمیشه که, باید ارتباطش بدی..
شما باید یک جدول پذیرش درست کنی.
این جدول کلید خاصی نمیخواد , بلکه در این جدول شما ستونهایی درست کنی که برای سه جدول دیگه کلید محسوب مشن.
یعنی بیایی این جدول پذیرشو بهانه ای برای مرتبط کردن این سه جدول قرار بدی.
حالا اگر متوجه نشدی بگو.
سلام ممنون از راهنماییت
با این راهنمایی که کردی من الان ایو حدودی طراحی کردم eer.jpg حالا یه سوال با طراجی بانک اطلاعاتی من یه کمی تغییر کرد، این تغیرات تو سورس برنامه هم باید اعمال کنم؟
 

blackpage

کاربر تازه وارد
تازه وارد
پاسخ : طراحی نمودار er برای پروژه مدیریت هتل

سلام امید جان
من تو این نمودارت یه تصحیح کوچیک اعمال کردم اما فکر کنم کامل نباشهeer.jpg
.من خودم خیلی وقت پیش ها برای یک نفر پروژه هتل انجام دادم با تمام این نمودار هاشو .. به طور کامل .اگر بتونم فایلشو پیدا کنم برای توضیح بیشتر بهت میدم.
صبر کن اونو پیدا کنم از روی اون کامل بهت میگم که جاییشو اشتباه نکرده باشم.
قطعا توی سورس هات هم باید تغییراتی بدی اما خیلی کوچیک. مثلا کلید هایی ممکنه جابه جا بشه که تو سورس هم اسمشون عوض کنی . در این حد.ولی خوب تو جدولهاتو کوئری هات هم تغییرات الزامیه.
با سی شارپ کار میکنی؟
 

omid-boy

کاربر تازه وارد
تازه وارد
پاسخ : طراحی نمودار er برای پروژه مدیریت هتل

سلام امید جان
من تو این نمودارت یه تصحیح کوچیک اعمال کردم اما فکر کنم کامل نباشهمشاهده پیوست 871
.من خودم خیلی وقت پیش ها برای یک نفر پروژه هتل انجام دادم با تمام این نمودار هاشو .. به طور کامل .اگر بتونم فایلشو پیدا کنم برای توضیح بیشتر بهت میدم.
صبر کن اونو پیدا کنم از روی اون کامل بهت میگم که جاییشو اشتباه نکرده باشم.
قطعا توی سورس هات هم باید تغییراتی بدی اما خیلی کوچیک. مثلا کلید هایی ممکنه جابه جا بشه که تو سورس هم اسمشون عوض کنی . در این حد.ولی خوب تو جدولهاتو کوئری هات هم تغییرات الزامیه.
با سی شارپ کار میکنی؟
ممنون از راهنماییتون
آره با c# کار میکنم
راستی این یکی رو هم طراحی کردم
EER.png
 

blackpage

کاربر تازه وارد
تازه وارد
پاسخ : طراحی نمودار er برای پروژه مدیریت هتل

سلام امیدجان
نمودارت درست نیست.من نمونه ای رو که قبلا انجام دادمو برات گذاشتم تا ببینی.
2.PNG
خوب دقت کن : ما تو این جا دو نوع جدول داریم : 1- جدول موجودیت ها : مشتری - اتاق - رستوران -سالن تئاتر.
2-جدول واسطه ها : offer room , offer servis
نوع اول که عادی نوشته میشه و هیچی. نوع دوم همون جدولهایی هستند که رابطه باهاشون برقرار میکنیم جنسشون از نوع فعل و انجام کار هست.مثلا ارائه کردن اتاق یا ارائه خدمات.ببین تو جدول ارائه اتاق, که بین اتاق و مشتری هست. ما کلید مخصوصی در این جدول نداریم. در حقیقت نگاه کن, شما بین مشتری و اتاق چه وجه مشترکی پیدا میکنی؟؟ هیچی. پس بیا یک جدول بسازیم که کلیدهای این دو وجوودیت بشه کلیدهاش تا به این واسطه یه ارتابطی ایجاد کنیم. مثلا متوجه بشیم که مشتری ایکس با فلان آی دی در فلان اتاق بوده. حالا من واسش تاریخو ساعت هم گذاشتم که تو ه ساعتیو چه روزو ...
بین مشتری و سرویس هم همینطور.
حالا بیا ارتباط بین موجودیت Hotel Services با موجودیتهای رستوران و سالن تئاتر ببین. خوب دقت کن که بین اینها هم یک فعل have داریم.
یادت باشه جدولهای offer room و offer services از نوع دوم بودن و از جنس فعل و کلیدشون میشد کلید جدولهایی که میخوان ارتباط بدن . حالا نگاه کن,اینجا بین رستوران و موجودیت ارائه سرویس هتل ما فعل have داریم اما این کار به جدول تبدیل نشده مثل ارائه دادن میدونی چرا؟ چون مثلا بین موجودیت رستوران و موجودیت سرویس های هتل ما کلید مشترک Services Number داریم. پس اینها مستقیم با هم در ازتباط هستند مثل موجودیت اتاق و مشتری یا مشتری و سرویس ها بدون هیچ وجه مشترکی نیستند. پس Have به جدول تبدیل نشد.
در کل:
1_شما بیا اول موجودیت هاتو مشخص کن.به هیچی کار نداشته باش.
2_برای همشون فیلدهایی که دارنو مشخص کن.تو این مرحله اصلا به بیه هیچ کاری نداشته باش.فیلد هر موجودیت با توجه به ماهیت خودش بنویس . فیلد هارو میتونی صفت هم در نظر بگیری برای موجودیتت.غیر ضروری هارو هم حذف کن.
3_بعد بیا روند کار با خودت بگو , مثلا مشتری رزرو میکند اتاق را, میبنی که این دوتا با هم سرو کار دارند پس بین مشتری و اتاق یک خط بکش و وسطش یک لوزی بکش بنویس رزرو کردن.
4_خوب میبینی موجودیت اتاق و مشتری که در ارتباط قرار گرفتند و با هم کار دارند, وجه مشترکی ندارند. پس رزرو کردن باید بشه یک جدول میانجی گر بین این دوتا :)
5_پس بدور لوزی رزور کردن(تو نمودار خودم منoffer-rooms نوشتم) یک مستطیل میکشی چون نیاز شد که تبدیل به جدول بشه تا بین اتاقو مشتری که وجه مشترک ندارند میانجی گری کنه .
6_ بعدش اولین کاری که میکنی بلافاصله برای این جدول رزرو باید کلید این دوتا جدولی که همیخواد بینشون میانجی گری کنه براش به عنوان فیلد بنویسی و کلید تعریف کنی ولی خوب کلید اصلی نیستندو جدولهای میانجی گر کلید اصلی ندارند.پس کلیدهای اتاق و مشتری براش به عنوان فیلد قرار میدهیم.
7_بعدش دید به فیلدهای دیگه هم نیازه و میتونه کمک کنه برای تکمیل شدن ,مثل تاریخ و ساعت رزرو . اینهارو هم تکمیل کن.
8_همین روندو بین سایر موجودیتهایی که طبق منطق قضیه میتونند با هم در ارتباط باشند رو بیان کن و کم کم تکمیل میشه.
منظورم از منطق قضیه این هست که مثلا ت ویک هتل واقعا چه چیزاها در ارتباطند,بر اون اساس موجودیتهاتو ارتباط بده.
یک نکته مهم :وقتی مرحله 3 انجام دادی,تو مرحله 4 بینشون وجه مشترک پیدا شد,دیگه نمیخواد اون لوزی و فعل بینشون جدول کنی دلیلشم واضحه چون وجه مشترک دارند و نیازی به واسطه گر نیست(مثل have بین سرویس رستوران و سرویسهای هتل که شماره سرویس بینشون مشترک).اون لوزی که جدول نمیشه در حد تعریف واسه توضیح نمودار میمونه و چیزی نیست که تو بانک اطلاعت بخواد پیاده بشه. چرا که تو بانک اطلاعاتت فقط جدول ها هستند که پیاده سازی میشوند.


این منطق و روندی که به طور کلی بیان کردم واسه طراحی هر بانک اطلاعاتی به کار میاد.
توی نموداری که کشیدی : الان پذیرش کی انجام میده؟ کارکنان پذیرش میکنند ؟ یا کارکنان هم مثل مشتری ها باید پذیرش بشن؟
احتمالا حالت اول منظورت بود . خود تا اینجاش درست,اما به نظرت مهمه که چه مشتری توسط چه کسی پذیرش شده؟وواقعا موضوع مهمتر از این تو یک هتل نیست؟ ;) البه غلط نیستا خوبه ولی ببین اولویت و کار اصلی تو : " رزرو کردن اتاق توسط مشتری" هست پس اتاقو مشتری مهم هستند.تازه اگر همین کارکنان و مشتری هم درست باشه بین کار کنان و مشتری وجه مشترک میبینی؟ خیر. پس فعل پذیرشی که تو لوزی کشیدی باید بشه مربع و لوزی یعنی جدول بشه تا ارتباط برقرار کنه که برای برقراری این ارتباط باید حتما دارای فیلد های کد مشتری و کد پرسنلی باشه تا میانجی گریو بتونه انجام بده.

حالا این کار منم ببین امیدوارم به کارت بیاد.
این توضیحات:
1.PNG
نمدار ER:
2.PNG
نمودار منطقی:
3.PNG
جدول های طراحی شدش با SQL:
4.PNG

موفق باشی
 
بالا