Skip to content

Repository files navigation


Final Project Database

概述

final_project_database 是一個基於 Python 的專案,旨在高效地管理資料庫操作。專案包含用於處理特定實體(如醫生、病人、預約等)的模組。db 模組作為主要介面,負責資料庫操作的抽象化,包括連線、執行查詢以及管理交易等常見任務。


功能

  • 資料庫管理:集中化操作,用於連接、查詢和管理 PostgreSQL 資料庫。
  • 實體模組:專用的 Python 類,用於處理不同實體(例如醫生、病人、預約等)。
  • 可擴展設計:模組化結構,易於擴展和維護。
  • 安全的查詢執行:參數化查詢以防止 SQL 注入。
  • 錯誤處理:全面的例外處理,確保穩定性。

專案結構

final_project_database/
│
├── db/                     # 核心資料庫操作和實體模組
│   ├── DB.py               # 主資料庫操作處理(連接、執行、交易)
│   ├── doctor.py           # 醫生實體操作
│   ├── appointment.py      # 預約實體操作
│   ├── patient.py          # 病人實體操作
│   ├── __init__.py         # 標記為 Python 模組
│
├── main.py                 # 測試和示範入口程式
├── requirements.txt        # Python 相依套件
└── README.md               # 專案說明文件

系統需求

  • Python 3.8+
  • PostgreSQL 12+
  • 必要的 Python 套件:
    • psycopg2(PostgreSQL 的適配器)

透過以下指令安裝相依的 Python 套件:

pip install -r requirements.txt

安裝步驟

  1. 複製此專案:

    git clone https://github.com/your_username/final_project_database.git
    cd final_project_database
  2. 設置 PostgreSQL 資料庫:

    • 建立資料庫和表格(請參考您的資料庫結構)。
    • main.py 中更新資料庫連接資訊。
  3. 初始化資料庫連接 (DB.py): 在 db_config 字典中更新您的資料庫憑證:

    db_config = {
        "dbname": "your_database_name",
        "user": "your_user",
        "password": "your_password",
        "host": "localhost",
        "port": 5432
    }

使用方法

運行專案

執行 main.py 以測試資料庫操作:

python main.py

範例程式碼

以下為創建與查詢預約的範例:

from db.DB import DB
from db.appointment import Appointment

# 初始化資料庫連接
db_config = {
    "dbname": "mydatabase",
    "user": "myuser",
    "password": "mypassword",
    "host": "localhost",
    "port": 5432
}
DB.init_connection(db_config)

# 創建預約
Appointment.create_appointment([
    1,  # patient_id
    2,  # doctor_id
    3,  # nurse_id
    "2024-12-29 14:00:00",  # appointment_time
    "scheduled",  # status
    "Routine checkup",  # diagnosis
    "phone",  # appointment_type
    "first_visit",  # visit_type
    "morning",  # session
    False,  # is_emergency
    None  # follow_up_to
])

# 查詢預約
appointment = Appointment.get_appointment(1)
print("Appointment Info:", appointment)

# 關閉資料庫連接
DB.close_connection()

模組及職責

DB.py

  • 處理資料庫連接管理和交易操作。
  • 提供執行查詢的輔助方法。

doctor.py

  • 負責對醫生實體的 CRUD 操作。

appointment.py

  • 負責預約的 CRUD 操作,包括排程和更新狀態。

patient.py

  • 負責病人資料的 CRUD 操作。

貢獻

  1. 複製此專案:

    git fork https://github.com/your_username/final_project_database.git
  2. 創建您的功能分支:

    git checkout -b feature/YourFeature
  3. 提交您的更改:

    git commit -m "新增 YourFeature"
  4. 推送到分支:

    git push origin feature/YourFeature
  5. 提交 Pull Request。


授權

此專案使用 MIT 許可證。詳細信息請參考 LICENSE 文件。


聯絡方式

如果您有任何問題,歡迎聯絡:


請根據實際需求替換 your_usernameyour_email@example.com 等占位符。如果有其他需求,請隨時告訴我!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages