読者です 読者をやめる 読者になる 読者になる

新・日々の暮らしに疲れてない?

一人バンド、火頭工房

go言語でsqlite3を動かすのに苦労した話 その2。 【Windows7 64bit】

前回からの続きで、次はgolang側の苦労。
ちなみに今回目指すのはブログの仕組みを作ること。

 

とりあえずSQL操作のおさらいと、go言語側での操作を学習。テーブルへのデータの追加・削除・検索・上書きなどを確認。とりあえずこれだけで動作するでしょう。

 

なにせ以前手がけたWikiページを改造し、楽をすることしか頭にありません。

Wikiページは記事の内容をテキストファイルに書き込んで保存する仕組みだったのですが、これをsqlite3のために書き換えていく、という作業。

 

特に問題もなく進んだのですが、新規作成ページと記事一覧のページを新しく作ることに。

 

記事のリストを一覧表示させるのに、SQLのテーブルに割り当てておいたprimary key の idを頼ろうと思っていたのですが、記事を削除するとidが歯抜けになる。なんとなく気持ち悪いなって調べ始めたのが良くなかった、無駄に頭を悩ませました。

 

autoincrement はどうかと調べたらパフォーマンスが悪いとか(気になる規模なわけないですが)。それにautoincrementを採用しても歯抜け問題はそのままになるようで、結局放置することに、ユーザーに見せなきゃ良い話だし。

 

別問題で、記事の一覧表示は作成日時で並べるのが普通だ、これはタイムスタンプが良いだろう、ということで採用。でもそしたら新規作成(タイムスタンプ記録する)と記事の再編集(しない)は別の処理になってしまうなー、いやいや、編集日時も保存すべきか...など、こうして作業が増えていくわけです。

 

上の内容を採用したりしなかったり、今回はこの辺で作業終了。

車輪をバリバリと再開発している火頭でした。


実際の挙動はこんな感じ。 

新規作成ページ、保存すると↓

f:id:hiatama:20160302200222p:plain

記事一覧に追加されます↓

f:id:hiatama:20160302200225p:plain

編集ページ↓ 画像タグを直接打ち込むと...

f:id:hiatama:20160302200228p:plain

閲覧ページでちゃんと反映されます。↓ 

f:id:hiatama:20160302200220p:plain