MIYAMOTO Daisuke
daisuke_m****@yahoo*****
2008年 6月 6日 (金) 12:23:56 JST
都元でっす。 意見募集メールには RFC タグ付けることにしました。 Request for Comment というわけで本題。 DefinitionModelはTypeDefModelとなったのは昨日のSkypeログの通り。 (Porterの命名については引き続き募集中です) で、現在、この状態でモデルの関係をフィールドのみで整理しています。 ところで、TypeDefModelは「制約」のリストを内部に持つことになります。 TypeDefModel は「foo VARCHAR(32) NOT NULL UNIQUE CHECK strlen(foo) > 5」みたいなの。 String name; DataType type; String size; // えびちゃんにdisられたトコw List<Constraint> constraints; というフィールドになると思います。 RDBMSには NOT NULL, UNIQUE, PRIMARY KEY, CHECK という4種の制約がありますが、 (他にあったっけw) これらをConstraint型でどのようにあらわすか、に悩んでます。 「PK = UNIQUE + NOT_NULL + α」の制約と考えて、 interface Constraint class NotNullConstrait implements Constraint class UniqueConstraint implements Constraint class PrimaryKeyConstrait extends NotNullConstrait, UniqueConstraint class CheckConstraint implements Constraint ...って多重継承してるじゃんオイw かといって、NotNullとUniqueはインスタンスが 必要なのでinterfaceにする訳にはいかない。 あれ、NULL入れられるPKってあったっけ? 入れられるとしたら interface Constraint class NotNullConstrait implements Constraint class UniqueConstraint implements Constraint class PrimaryKeyConstrait extends UniqueConstraint class CheckConstraint implements Constraint かなぁ。っていうかもう、 interface Constraint class NotNullConstrait implements Constraint class UniqueConstraint implements Constraint class PrimaryKeyConstrait implements Constraint class CheckConstraint implements Constraint と、フラットにしてしまうか? っていうかそもそも Constraint は interface か? など。 ご意見募集。 # 間違って seasar-dev に誤爆しそうになった(汗 -- MIYAMOTO Daisuke skype: cuervo1800