NSString
java.lang.String
java.io.Reader
(for CLOB) |
可能なデータタイプ: |
CHARACTER, VARCHAR, CLOB |
推奨: |
VARCHAR
|
コメント: |
もし、とても長いストリングを扱い、そのストリング・キャラクタ上で検索する予定がほとんどないのであれば、CLOBデータタイプにするのがいい選択だろう。CLOBデータタイプの主な長所は、データベースに、ストリングを分けて送信する点にある。これにより、データベースは巨大なSQLステートメントの構文解析やコピーから開放され、かわりにデータを効果的にバイナリ・チャンネルへ転送することができるようになる。
VARCHARは、一般的に、CHARACTERよりもお勧めである。VARCHARのインプリメンテーションは、とても効果的で、区別が必要なストリングの再利用を許可しているからである。パフォーマンスを犠牲にしなくても、たとえば、 VARCHAR(1000000)といった具合に、VARCHARの定義を行うことで、“必要に応じて変更可能な" VARCHARの定義を使うことができる。
キャラクタ・ストリングの内部表示は、クライアント側で行われるエンコード・デコードにはUTF8が用いられる。すなわち、NSString/java.lang.Stringネイティブな手法で処理される。
|
|
NSNumber
java.lang.Number |
可能なデータタイプ: |
BOOLEAN, SMALLINT, INTEGER, FLOAT, REAL, DOUBLE PRECISION |
推奨: |
INTEGER あるいは DOUBLE PRECISION (実際の用途に依存する) |
コメント: |
NSNumber/Numberは、C/Javaの数値データタイプをカバーするもので、FrontBaseタイプでは、実際の用途によってどちらかを選ぶことになる。 |
|
NSDecimalNumber
java.math.BigDecimal |
可能なデータタイプ: |
NUMERIC, DECIMAL, REAL, FLOAT, DOUBLE PRECISION |
推奨: |
DOUBLE PRECISION, DECIMAL |
コメント: |
正確な計算を期すため、NSDecimalNumberを使っている場合、DOUBLE PRECISION(あるいは整数値の場合はDECIMAL)を直接マップすること。必要なディスクスペースを減らしたいなら、かわりにFLOAT/NUMERICを用いることもできる(1行、1つの値あたり。8バイト節約することができる)。 |
|
NSCalendarDate
java.sql.Date
java.sql.Timestamp) |
可能なデータタイプ: |
DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE |
推奨: |
TIMESTAMP |
コメント: |
TIMESTAMP WITH TIME ZONEは、NSCalendarDateで与えられるデータと直接的に同等なものである。異なるタイムゾーンに属するデータを扱う必要がなかったり、常にクライアント側タイムゾーンを使って時刻表示したい場合は、TIMESTAMPだけを扱えばよい。 |
|
java.sql.Time |
可能なデータタイプ: |
TIME, TIME WITH TIME ZONE |
推奨: |
どちらでもよい
|
コメント: |
java.sql.Timeは、java.sql.Dateを単に(あるいは驚くほど情報を削減して)包括的に扱うものである。 |
|
NSData
java.io.InputStream |
可能なデータタイプ: |
BLOB |
推奨: |
BLOB |
|
Primary key |
可能なデータタイプ: |
INTEGER, BYTE(12) |
推奨: |
どちらでもよい. |
コメント: |
BYTE(12)は、BIT(96)をカバーするもので、このデータタイプはEOFによって作られるプライマリ・キーの生成に使われるべきものである(クライアント側の計算機能による)。
FrontBaseのデータタイプはどれも、プライマリ・キーに対して使われ、そのために、すべての数値データタイプは、実際の数値として表現される。これは、たとえば、プライマリ・キー列に対するデータタイプとして、DOUBLE PRECISIONや、TIMESTAMP を使っても安全だということだ。しかしながら、EOFについては、プライマリ・キー列としての指定には適さないデータタイプがある(DOUBLE PRECISION、BLOB、そしてCLOBである) 。したがって、もしEOFを使うなら、この点をよく検討する必要がある。
FrontBaseは、マルチ・コラムあるいは複合的プライマリ・キー(compound primary keys)をサポートしている。ただし、EOFで、複合キーを使う場合は、かなり注意を払う必要がある。
|