over 2 years ago

資料模型 Model

在任何應用程式中資料模型(Model)是最重要的一環,通過分析討論業務流程後,必須定義出資料模型,方可提供應用程式存取資料。以下展示來自 Sring 提供的範例,spring-petclinic,寵物診所作為舉例說明。

1. 寵物診所-資料模型


圖1: UML 類別圖(class diagram),表示寵物診所之資料模型

寵物診所簡單記錄了獸醫、寵物主人、寵物、看診記錄等資料。
圖一以 UML 類別圖表示,並非傳統 ER-model 表示,原因為類別圖可以容易看圖實作,無論物件關聯對映(Object Relational Mapping)技術或者 Mongo 資料庫,而不需要因產生無直接有用的文件,再多一層轉換。

圖中有 'is-a'、'1..1'、'1..*'、'0..*',為統一模型化語言(UML)中的術語。

  1. is-a 表示繼承關係,A is-a B,B 是一個較抽象的概念,集中共同的屬性,如 人類 is-a 動物,只要是動物都有一顆心臟、大腦、呼吸系統、...。
  2. 1..1 表示 has-a 中的一對一關係,A has-a B,B 是 A 中的一個必要屬性,如 人類 has-a 心臟
  3. 1..* 表示 has-a 中的一對多關係,如電腦 至少有一個 硬碟,但最多多少不限。
  4. 0..* 表示 has-a 中的不限多寡關係,如電腦 可以不需要滑鼠,但也可以有很多顆滑鼠。(這例子真不實際)

1.1. 類別說明

  1. 獸醫(Vet)是一個人(Person),至少有一個專業科目(Specialty)。
  2. 寵物主人(Owner)也是一個人,可以擁有許多寵物(Pet)。
  3. 寵物(Pet)有必須一個主人(Ownwe)、有一個寵物種類(PetType),可以有許多看診記錄。
  4. 看診記錄(Visit),必須記錄一隻看診的寵物。

1.2. 列舉物件實體

專業科目(Specialty): 放射科(radiology)、外科(surgery)、dentistry(牙科)
寵物種類(PetType): 貓(cat)、狗(dog)、蜥蜴(lizard)、蛇(snake)、鳥(bird)、倉鼠(hamster)
看診記錄(Visit): 狂犬病疫苗注射(rabies shot)、絕育(neutered)、絕育(母)(spayed)、絕育(公)(castrated)

參考來源:https://github.com/spring-projects/spring-petclinic/

← Web - Bootstrap - 第一步驟 Java - JUnit - Test Method Order →
 
comments powered by Disqus