2011/01/28

PostgreSQL のストアドを Scheme で

これも @kikuchan98 さんに教えてもらいました。
裏では Guile が動くみたいです。

まだ PostgreSQL 自体の扱い方がいまいちわかんないような状態なので、これを使うようなことはもう少し先のお話かも。
ようやく Serversman に入れた PostgreSQL にローカルからネットワーク越しにアクセスできるようになったところです。

余談

SQL で木構造扱うのって悩みの種だと思うんですが、RDB 向けのデザインパターンみたいなノリでサンプル集が欲しいなどと思うわけです。

こことか参考になります。
日本語ではこういう情報ってあまり見かけませんよね。

SQL で木構造や階層構造を扱うってんで以前、隣接モデルでやったことはあるんですが結構大変でした。
何回 join すんだよ、決め打ちか?みたいな。抽象度低くね?みたいな。

で、今回は Nested Set Model について一通り調べてみて、サンプル書いてみたりしたんですが、これもこれで大変そうな。。

「だったらストアドにすればいいじゃん。ポスグレなら Scheme でも書けるよ。」
「な、なんだってー!」 > ΩΩ Ω ザワザワ

別に Transacto-SQL とかを書くのは嫌いじゃないですけど、Scheme で書けるとなると書いてみたいですね。


あと、もう一つ気になったのが、DB のサンプル少なくないですか?
私が見つけられなかっただけでしょうか。。

「マ○ドナルドのメニューとか CSV で落ちてそうじゃね?」などと思って探してみたり。
郵便番号辞書から階層データ作るのも、なんだかなーだし。

今回は結局自分で手打ちすることに・・・。
最初に思いついた、ドリンクメニューにしました。

  • 飲み物
  • ジュース
    • オレンジ
    • コーラ
    • カルピス
  • アルコール
      • 美少年
      • ずいよう
    • 焼酎
        • 白岳
        • 伊佐錦
        • 伊佐美
        • 白波
        • 魔王
        • 森伊蔵
        • 佐藤
        • 霧島
        • 黒麹
          • 黒伊佐錦
          • 黒白波
          • 黒佐藤
          • 黒霧島
        • 二階堂
        • いいちこ
      • 黒糖
        • 喜界島
        • れんと
      • その他
        • たんたかたん
    • カクテル
    • ワイン
    • ブランデー
    • ウィスキー
    • ビール
      • 国内
      • 国外
  • コーヒー
  • お茶
  • ・・・
みたいな。
できあいのこういうデータがCSVか何かで複数あったらうれしくないですか?

こういうジョジョの系譜のデータとかね。


MSSQL だったら pubs, northwind, adventure works なんかもありますし、postgres でも sample DB があるにはありました。
でもなんか、あんまり親切じゃないようなイメージです。
詳しいドキュメントとか、ER 図とか、ER 図とか、あると嬉しいんですけどね。



PostgreSQL完全機能リファレンス―実行例を通して「理解」を深める。

0 件のコメント:

コメントを投稿