程式開發中使用oo的語言和方式,自然的養成了oo的思想,那麼在設計資料庫datamodel時,完成可以繼續發揚光大。
用oo的方式發現物件,發現class,找到class之間的關係,完成uml的類圖。
結合這個類圖,根據一對一,一對多,和多對多的,物件關係。來設計資料的datamodel
這個過程很清楚也很自然。
舉例說明:
1.use case的描述。
資料庫相關的設計,無非是資料如何輸入,和特定檢索條件的資料標示。
所以根據使用者的輸入的方式,和檢索輸出條件可以確定基本的usecase。
不同的使用者,不同時間點的資料輸入。不同的檢索條件,都要作為usecase的考慮重點,
注意)千萬不要假定使用者會一次性的完整的錄入我們設定好的資料格式。
根據這個一點,乙個簡單的資料的錄入case,可能會分解成很多的輸入case。
2.class的發現
基於use case 發現 用例中的class和他的熟悉,建立 class圖。
用class去驗證usecase,保證usecase的完整覆蓋。
注意採用oo的方式,注意要先把名詞都處理成class,而不要先把名詞都處理成屬性。
例如。書,有作者和分類。如果上來就先處理成屬性,book 有author 和 category屬性
那麼當一本書有多個作者和屬於 「科幻,戰爭,愛情」分類時就麻煩了 。
所以應該自然的優先考慮物件的方式,定義 book class, author class, catalog class
然後對他們之間的關聯關係分析,(一對多,多對多,一對一)看那些class可以退化成屬性。(一對一的情況,考慮用屬性實現)
3.class之間的關係
一對一,
一對多,
多對多
4.datamodel的完成。
class設計成表,關係通過外來鍵來描述。多對多的關係需要乙個中間表。
最後再用設計好的datamodel來覆蓋usecase。檢查設計有無問題。
通過shell指令碼進行資料庫操作
在做一些日常的運維工作的時候,經常需要些一些shell指令碼進行裝置效能以及其它引數的監控。在過去的一年工作中,接觸到的比較多的是對資料庫中某些資訊的監控。於是就想到了用shell mysql crontab進行實現。下面附上通過shell命令列非互動式的運算元據庫的方法 mysql hhostna...
通過shell指令碼進行資料庫操作
在做一些日常的運維工作的時候,經常需要些一些shell指令碼進行裝置效能以及其它引數的監控。在過去的一年工作中,接觸到的比較多的是對資料庫中某些資訊的監控。於是就想到了用shell mysql crontab進行實現。下面附上通過shell命令列非互動式的運算元據庫的方法 mysql hhostna...
通過Mysql資料檔案進行資料庫還原
一直沒有做mysql資料庫的備份,最近伺服器壞了,怎麼樣都啟不了,檔案倒是能夠拿回來,現在就只能通過資料庫的檔案進行還原了,剛開始的我的操作是在本地建立乙個相同的資料庫,然後將原來資料庫的檔案給拷貝過去替換現在資料庫的檔案,通過show tables命令倒是能夠看到其中所有的表,但是操作表如查詢的時...