golangでRDBを実装

今、posgresとMySQLへの接続を実施するにあたり、実装方法を検討した。

今の構成

今はorマッパーを使ってもらず、sql packageを直で使っていて、アプリケーション層にSQLを記述している。

イメージ

if err := cnn.QueryRow("SELECT name FROM person WHERE id = ?LIMIT 1", id).Scan(&name); err != nil {  
    log.Fatal(err)
}

だけどこれだとモジュール単位で分けづらくて、テストがやりづらい。

MVC

こんなレベルにしようと思う。

.
├── main.go
├── config
├── controllers
├── models

モデル層は相互参照にぶつかりそうなので、注意は必要だと思う。

とりあえずかきながら整理する。