Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/shlmt/flights


https://github.com/shlmt/flights

database sql sql-server

Last synced: 9 days ago
JSON representation

Awesome Lists containing this project

README

        

### מסד נתונים לניהול טיסות

#### תיאור הפרויקט

הפרויקט כולל יצירת מסד נתונים בשם `flights_db` לניהול מגוון נושאים של טיסות תעופה, כולל חברות תעופה, מטוסים, יעדים, טיסות, נוסעים, הזמנות כרטיסים, טריגרים, תצוגות, תהליכים מאוחסנים ופונקציות.

#### מבנה מסד הנתונים והטבלאות

1. **AirLines_tbl**

- טבלה המאחסנת קודי חברות התעופה ושמותיהן.
- מפתח ראשי: `AirlineCode` (מספור אוטומטי).
- אילוץ unique על `AirlineName`.
2. **Planes_tbl**

- טבלה המאחסנת פרטי מטוסים.
- מפתח ראשי: `PlaneCode` (מספור אוטומטי).
- מפתח זר: `AirlineCode` המתייחס לטבלת `AirLines_tbl`.
- מספר מושבים ברירת מחדל: 300.
3. **Destination_tbl**

- טבלה המאחסנת קודי יעדים ושמותיהם.
- מפתח ראשי: `DestinationCode` (מספור אוטומטי).
- אילוץ unique על `DestinationName`.
4. **Flights_tbl**

- טבלה המאחסנת פרטי טיסות.
- מפתח ראשי: `FlightCode`.
- מפתחים זרים: `PlaneCode` (מתייחס ל `Planes_tbl`), `DestinationCode` (מתייחס ל `Destination_tbl`).
- עמודות: מחיר כרטיס, תאריך טיסה, קוד טיסת המשך.
5. **Passengers_tbl**

- טבלה המאחסנת פרטי נוסעים.
- מפתח ראשי: `PassengerCode` (מספור אוטומטי).
- עמודות: שם פרטי, שם משפחה, מספר טלפון (עם אילוץ ל-10 ספרות).
6. **OrderTicket_tbl**

- טבלה המאחסנת פרטי הזמנות כרטיסים.
- מפתח ראשי: `OrderCode` (מספור אוטומטי).
- מפתחים זרים: `FlightCode`, `PassengerCode`.
- עמודות: תאריך הזמנה (ברירת מחדל לתאריך נוכחי), מספר מושב.

#### טריגרים

- **Shabbos_trigger**: בטבלת `Flights_tbl`, בעת הזנה או עדכון של תאריך טיסה, נבדק האם התאריך הוא שבת או חג, ואם כן התאריך יוחלף ליום ראשון.
- **seat_trigger**: בטבלת `OrderTicket_tbl`, מבצע בדיקה שהמספר המושב המבוקש קיים במטוס המתאים לטיסה זו.
- **date_trigger**: בטבלת `OrderTicket_tbl`, מונע הזמנת טיסות שכבר עברו.

#### תצוגות

- **FlightsDetailsByOrders**: מציגה פרטי טיסה לכל לקוח, כולל שם מלא של הנוסע, קוד טיסה, שם חברת התעופה, שם היעד, תאריך הטיסה ומספר המושב.
- **SumPlanesOfAirLines**: מציגה את מספר המטוסים בבעלות כל חברת תעופה.

#### פרוצדורות ופונקציות

- **insertPassenger**: פרוצדורה שמכניסה נתונים לטבלת `Passengers_tbl`.
- **updateFlightDate**: פרוצדורה שמעדכנת את תאריך הטיסה לטיסה נבחרת לתאריך חדש.
- **continueFlight**: פונקציה שמציעה טיסות המשך אפשריות עם הנחה של 10% על מחיר הכרטיס.
- **NumberOfPassengers**: פונקציה שמחזירה את מספר הנוסעים לטיסה נתונה.

#### תוכנית: FreeFlight

- **FreeFlight**: תוכנית שמבצעת גרילה לבחירת נוסע מזוהה להטבה מיוחדת ומודיעה לו באמצעות קריאה קולית אם מספר הטלפון שלו כשר, או באמצעות הודעת טקסט אם לא.

#### הזנת נתונים

- הזנות שונות לטבלאות כדי להדגיש את פעולתם של הטריגרים, כגון כתיבת תאריכי טיסה בשבת או בשישי, אימות מספרי מושבים, ומניעת הזמנות כפולות.