型の互換性

RDBMSには色んなデータ型があります。INTEGERやVARCHARやTIMESTAMPなど。

そこで、外部キーを張れる型のリスト(説明しづらいw)が欲しい。

例えば、INTEGERはSERIALを参照できるけど、TEXTは参照できない、みたいな、型の互換性情報。

めんどくちゃい…w

追記

互換性のない型を持つカラムを参照する外部キーを、Validationでエラーにしたいのです。

全く同じ型のカラムじゃないとダメ、ってのなら簡単なんですが、INTカラムがSERIALカラムを参照するだけでエラーになってしまうorz

あと、SMALLINTカラムがBIGINTカラムを参照はできるのか。その逆はどうなのか。10種類以上*1もDB対応させようとすると、脳みそ溶けそうになる。無理があるのかorz

*1:標準SQL99,PostgreSQL,MySQL,Firebird,H2,HSQLDB,Derby,Oracle,MSSQL,SQLAnywhere,DB2