0

HBASE バージョン: 0.94.10

プライマリ ケア システムのデータ モデルを設計する NOSQL の初心者。HBASE-0.94.0などのサンプルDB関係モデルを正規化しました

Patient table: 

============ 

1) Patient_id - PK 

2) Added_BY 

3) Gender 

4) Usual_GP 

Patient Name table: [One to many relationship with patient [One] Name[Many]] 

1) Name_id 

2) Patient_id - FK 

3) Name_type 

4) First name 

5) Last Name 

6) Middle name 

Patient address table: [One to many relationship with patient [One] address[Many]] 

1) Address_id 

2) Patient_id - FK 

3) Address_type 

4) Line1 

5) Line2 

6) Line 3 

7) Line 4 

8) Line 5 

Patient Phone table: [One to many relationship with patient [One] Phone[Many]] 

1) Phone_id 

2) Patient_id - FK 

3) PhoneType 

4) Phoneno 

5) ext 

Medication and other details 

1)Entry_id 

2)Patient_id - FK [One to many relationship with patient [One] Medication[Many]] 

3)Start_date 

4)End_date 

5)Code 

6)Medicine description 

7)Dosage details 

8) Number of authorised 

9) Number issued 

上記の正規化されたデータ モデルについて、以下にサンプルの NoSQL データ モデルを作成しました。ドキュメント ベースの NOSQL でデータ モデルが機能することを願っています。以下のデータ モデルを HBASE 列ベースのデータ モデルに変換する必要があります。

Patient :{Patient_id:22, 

              Added_by:Doctor1, 

              Gender:Male, 

              UsualGP: Doctor2, 

              PatName:[ 

              {NameType:Usual, FirstName:Hari, LastName:prasad,Middlename:' '}, 

              {NameType:Other, FirstName:John,LastName:prasad,Middlename:kenndy}  

              ] 

              PatAddr:[ 

              {AddType:Usual, Line1:2, Line2:Harrington road, Line3: near central, Line4:Newyork,Line5:NY008}, 

              {AddType:Tmp, Line1:2, Line2:Mylapore road, Line3: near Zoo, Line4:WashingtonDC,Line5:WA00098} 

              ] 

              PatPhone:[ 

              {PhoneType:Usual, Phoneno:4453443344, ext:099}, 

              {PhoneType:Tmp, Phoneno:9198332342343, ext:} 

              ] 

              PatMedication:[ 

              {MedStardate:'01/01/2013', MedEndDate:'', Code:'Snomode', MedDesc:'Paracetmol', DosDet:'Take 2 daily', Noauth: 5, Issue: 3}, 

              {MedStardate:'01/05/2013', MedEndDate:'01/05/2013', Code:'readcode', MedDesc:'Avil', DosDet:'Take 1 daily', Noauth: 3, Issue: 1}, 

              {MedStardate:'01/10/2013', MedEndDate:'24/10/13', Code:'readcode', MedDesc:'Metacin', DosDet:'Take 2 daily', Noauth: 5, Issue: 3}, 

              ] 

             }
4

1 に答える 1

1

コメントで述べたように、HBase は非リレーショナル データ用です。ただし、この目的には引き続き使用できます。まず、列ファミリーを定義する必要があります。列形式であるため、列名は必要ありません。

これらの列を同じ列ファミリーに含めると、パフォーマンスが向上します。したがって、1 つのカラム ファミリーが適切です。それに加えて、列名と列ファミリー名を短くすることも、別のパフォーマンスの問題です。可能であれば、これらの列と列変数に 1 文字または 2 文字の名前を付けてください。

ただし、外部キーをそのまま使用することはできません。つまり、別のテーブルのIDを列に保存できますが、それが存在するかどうかを直接確認することはできません。代わりに、このテーブルに移動して手動で確認する必要があります。

この説明がお役に立てば幸いです。詳細については、これを確認してください。

于 2016-12-21T12:11:35.947 に答える