タグ

2011年11月18日のブックマーク (4件)

  • 第6回 SQLで木構造を扱う~入れ子区間モデル (1)もしも無限の資源があったなら | gihyo.jp

    はじめに 前回では、入れ子集合モデルという、リレーショナルデータベースで木構造を扱うための新しい方法論を紹介しました。このモデルは、RDBSQLと親和性の高い優れたものではあるのですが、挿入など更新時に、無関係のノードまで変更対象としなければならないのが大きな難点でした。 そこで今回は、上記の欠点を解消する進化版のモデルを紹介します。この方法を理解していく過程で、私たちはRDBと集合論の結び付きの深さを再確認することになります。 ふだんこの連載は、1回完結の読み切り形式なのですが、今回に限り、前号の内容を前提としています。未読の方は、前号を先に読むと理解が増すでしょう。 稼働環境 すべてのリレーショナルデータベース もしも無限の資源があったなら 座標に整数のみを使う場合の限界 入れ子集合モデルの大きな欠点は、ノードを挿入(追加)するときに、自分より「右側」にある無関係なノードをもっと右へ

    第6回 SQLで木構造を扱う~入れ子区間モデル (1)もしも無限の資源があったなら | gihyo.jp
  • 入れ子区間モデルによる挿入と削除 - Tociyuki::Diary

    木構造を入れ子区間モデルで扱う方法のうち、挿入と削除をおこなう SQL 文を考えてみました。SQLite 3 でのみ動作検証しています。 ネタ元その1⇒「SQLアタマアカデミー:第6回 SQLで木構造を扱う〜入れ子区間モデル (1)もしも無限の資源があったなら |gihyo.jp … 技術評論社」 ネタ元その2⇒「SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル」 テーブル作成 入れ子集合モデルの lft と rgt を INTEGER から REAL へ変更するだけです。 CREATE TABLE IF NOT EXISTS org ( person VARCHAR(32) PRIMARY KEY ,lft REAL NOT NULL ,rgt REAL NOT NULL ,CHECK (lft < rgt) ); CREATE INDEX IF NOT EXISTS or

    入れ子区間モデルによる挿入と削除 - Tociyuki::Diary
  • PHP 5.4 - Begin your love affair with traits

    Slides for my talk at OSDC PHP MiniConf. November 14, 2011.

    PHP 5.4 - Begin your love affair with traits
  • PHP:何でもメソッドチェーン化するChainize()を作ってみた

    ※今回、実用性とか特に考えていないネタ記事ですのでそこらへんご了承ください。 PHPは他のオブジェクト指向言語と同じように、return $thisしておけばメソッドチェーン(Method Chaining / Fluent Interface)できます。対応ライブラリも沢山あります。 慣れてくると、メソッドチェーンできないとストレスを感じるようになってきます。DOMDocumentとか、Zend_Feed_Writerとか、なぜかメソッドチェーンできなくて、むずむずします。 そこでどんなオブジェクトでも、無理やりメソッドチェーンできるようにする関数Chainize()を考えてみました。ソースは少し長くなったので最後に載せます。使い方イメージだけ先に書きます。 基的な使い方 Chainize()で囲うとメソッドチェーンできるようになります。例えば前述のZend_Feed_Writerはそ

    PHP:何でもメソッドチェーン化するChainize()を作ってみた
    k-holy
    k-holy 2011/11/18
    何でもかんでも繋げすぎてメソッド遅延とか