簡體   English   中英

兩種方法之間更好的醫院病床費用數據庫設計

[英]Better design of database for Hospital Bed charges between two approaches

我正在嘗試創建一個用於醫院病床收費的數據庫。 對於哪種方法更好,我有點困惑。

哪種方法更容易維護和查詢數據庫?

我個人認為第一種方法更好。

方法1

room_no charges_cash    charges_cashless
MG1      300                400
MG2      400                500

方法2

room_no charges  cash_cashless
MG1      300     cash
MG1      400     cashless
MG2      400     cash
MG2      500     cashless

提前致謝

第一個。 這樣,您可以將room_no用作主鍵。 第二個很好,當它不是主數據時,當它是關系表時。 這基於您的數據庫設計。

簡而言之,我將使用選項二。

從關系數據庫設計的角度來看,我同意Flosculus,好像您希望將來增加其他類型的收費(例如,將無現金方式分為信用卡,Paypal,Worldpay等),然后在選項一中,您需要進行更改模式,但是在第二種方法中您沒有; 只是在cash_cashless中使用不同的值(並且可能將該列重命名為“ payment_type”或其他內容?)

例如:

客房表

Room_No  Room_Name   Other_Columns
MG1      Room One          *
MG2      Room Two          *

收費表

Charge_ID Room_no Charge  Payment_Type
1         MG1      300     cash
2         MG1      400     cashless
3         MG2      400     cash
4         MG2      500     cashless  
5         MG2      450     cheque
6         MG2      600     creditcard 

同樣,從性能的角度來看,您可能會發現選項2隨着時間的推移會更好地擴展,因為您可以在查詢中獲得更細粒度的信息,並且可以創建更有效的索引。

如果您只想為每個房間提供一種收費類型,則可以使用[Room_no]和[Payment_Type]列中的復合主鍵。

使用方法2的原因是,如果要設計數據庫以根據需求進行擴展。

第一個將更易於查詢,但是第二個將使您可以向cash_cashless列添加其他值,盡管您可以將其重命名為更通用的名稱來處理不同的類型。

在這種情況下,您的要求可能僅限於這兩種現金和無現金方式,但是由於上述原因,通常使用第二種方法。

我將在一個字段中使用價格,在另一個字段中兌現,以免在您為一次付款創建兩行的情況下避免另一字段的數據重復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM