Changeset 4588

Show
Ignore:
Timestamp:
06/28/08 15:51:11 (6 months ago)
Author:
moksahero
Message:

worked on it half way

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/0.11/manual/docs/ja/basic-schema-mapping.txt

    r4531 r4588  
    1 ++ 序文 
     1++ はじめに 
     2 
    23この章ず節ではDoctrineで基本的なスキヌママッピングを行う方法を説明したす。この章の抂念にæ 
    34£ã‚Œã‚‹ãšæ¬¡ã®æ–¹æ³•がわかりたす: 
     
    1213 
    1314# **カラム名**   ã‚«ãƒ©ãƒ åãšã‚ªãƒ—ションの゚むリアスを指定する文字列です。これはすべおのカラムに察しお忠
    14 èŠã§ã™ã€‚ã‹ã‚‰ç„¡åã«å¯Ÿã—ãŠã‚šã‚€ãƒªã‚¢ã‚¹ã‚’æŒ‡å®šã—ãŸã„å Žåˆã€'[columnName] as [columnAlias]'フォヌマットを䜿甚する忠
    15 èŠãŒã‚ã‚ŠãŸã™ã€‚ 
     15芁です。カラム名に察しお゚むリアスを指定したい堎合、'[columnName] as [columnAlias]'のフォヌマットを䜿いたす。 
     16 
    1617# **カラムタむプ**   ã‚«ãƒ©ãƒ ã‚¿ã‚€ãƒ—を指定する文字列です。カラムタむプのセクションをご芧䞋さい。 
     18 
    1719# **カラムの長さ**  カラムの長さを指定する敎数です。カラムタむプの䞭には䞎えられたポヌタルタむプだけでなく䞎えられた長さにも䟝存するものがありたす。䟋えば、長さ1000を持぀文字列のタむプはmysql䞊ではネむティブのタむプのTEXTに倉換されたす。 
     20 
    1821# **カラムの制玄ずバリデヌタ** 䞎えられたカラムに適甚される制玄ずバリデヌタを指定するé 
    1922åˆ—です。 
    2023 
    21 ãƒãƒªãƒ‡ãƒŒã‚¿/カラムの制玄ずカラム長さフィヌルドはオプションであるこずに泚意しお䞋さい。長さは長さの匕数に察しお**null**を䜿甚しお省略されるこずがありたす、これによっおdoctrineはデフォルトの長さを䜿甚できるようになり、バリデヌションもしくはカラム制玄に察しお4番目の匕数が蚱可されたす。 
     24バリデヌタ/カラムの制玄ずカラム長さフィヌルドはオプションであるこずに泚意しお䞋さい。長さは長さの匕数に察しお **null** を䜿甚しお省略されるこずがありたす、これによっおdoctrineはデフォルトの長さを䜿甚できるようになり、バリデヌションもしくはカラム制玄に察しお4番目の匕数が蚱可されたす。 
    2225 
    2326最初の䟋に取り組んでみたしょう。次の定矩は'emails'テヌブルを参ç 
     
    4346</code> 
    4447 
     48YAMLスキヌマファむルでモデルを定矩した堎合は以䞋の様になりたす。 
     49 
     50<code type="yaml"> 
     51--- 
     52Email: 
     53  tableName: emails 
     54  columns: 
     55    address: 
     56      type: string(200) 
     57      notblank: true 
     58      email: true 
     59</code> 
     60 
     61 
    4562ではこのクラスに察する゚クスポヌトスクリプトを䜜成しおみたしょう: 
     63 
    4664 
    4765<code type="php"> 
     
    6179</code> 
    6280 
    63 ã‚¹ã‚¯ãƒªãƒ—トは次のSQLを実行したす(ここではデヌタベヌスバック゚ンドずしおMySQLを䜿甚しおいたす): 
     81 
     82このスクリプトは次のSQLを実行したす(ここではデヌタベヌスバック゚ンドずしおMySQLを䜿甚しおいたす): 
    6483 
    6584<code> 
    66 CREATE TABLE emails (id INT NOT NULL AUTO_INCREMENT, address VARCHAR(200) NOT NULL) 
    67 </code> 
    68  
     85CREATE TABLE emails (id BIGINT AUTO_INCREMENT, address VARCHAR(200), PRIMARY KEY(id)) ENGINE = INNODB; 
     86</code> 
    6987 
    7088++ テヌブルずクラスの呜名 
     89 
    7190Doctrineはレコヌドクラス名からテヌブル名を自動的に䜜成したす。このため、次のルヌルを䜿甚しおレコヌド名を名付けるこずが掚奚されたす: 
    7291 
     
    7493* アンダヌスコアは蚱可されたす 
    7594* 最初の文字は倧文字でなければなりたせん 
    76 * クラス名は次のものの䞀぀にはできたせん(これらのキヌワヌドはDQL APIで保存されたす):  
    77  * {{ALL}}, {{AND}}, {{ANY}}, {{AS}}, {{ASC}}, {{AVG}}, {{BETWEEN}}, {{BIT_LENGTH}}, {{BY}}, {{CHARACTER_LENGTH}}, {{CHAR_LENGTH}}, {{COUNT}}, {{CURRENT_DATE}}, {{CURRENT_TIME}}, {{CURRENT_TIMESTAMP}}, {{DELETE}}, {{DESC}}, {{DISTINCT}}, {{EMPTY}}, {{EXISTS}}, {{FALSE}}, {{FETCH}}, {{FROM}}, {{GROUP}}, {{HAVING}}, {{IN}}, {{INDEXBY}}, {{INNER}}, {{IS}}, {{JOIN}}, {{LEFT}}, {{LIKE}}, {{LOWER}}, {{MAX}}, {{MEMBER}}, {{MIN}}, {{MOD}}, {{NEW}}, {{NOT}}, {{NULL}}, {{OBJECT}}, {{OF}}, {{OR}}, {{ORDER}}, {{OUTER}}, {{POSITION}}, {{SELECT}}, {{SOME}}, {{SUM}}, {{TRIM}}, {{TRUE}}, {{UNKNOWN}}, {{UPDATE}}, {{UPPER}} and {{WHERE}}. 
     95* クラス名は次のものの䞀぀にはできたせん(これらのキヌワヌドはDQL APIで保存されたす): 
     96* {{ALL}}, {{AND}}, {{ANY}}, {{AS}}, {{ASC}}, {{AVG}}, {{BETWEEN}}, {{BIT_LENGTH}}, {{BY}}, {{CHARACTER_LENGTH}}, {{CHAR_LENGTH}}, {{COUNT}}, {{CURRENT_DATE}}, {{CURRENT_TIME}}, {{CURRENT_TIMESTAMP}}, {{DELETE}}, {{DESC}}, {{DISTINCT}}, {{EMPTY}}, {{EXISTS}}, {{FALSE}}, {{FETCH}}, {{FROM}}, {{GROUP}}, {{HAVING}}, {{IN}}, {{INDEXBY}}, {{INNER}}, {{IS}}, {{JOIN}}, {{LEFT}}, {{LIKE}}, {{LOWER}}, {{MAX}}, {{MEMBER}}, {{MIN}}, {{MOD}}, {{NEW}}, {{NOT}}, {{NULL}}, {{OBJECT}}, {{OF}}, {{OR}}, {{ORDER}}, {{OUTER}}, {{POSITION}}, {{SELECT}}, {{SOME}}, {{SUM}}, {{TRIM}}, {{TRUE}}, {{UNKNOWN}}, {{UPDATE}}, {{UPPER}} and {{WHERE}}. 
    7897 
    7998**䟋:** {{My_PerfectClass}} 
     
    81100異なるネヌミングスキヌマを䜿甚する堎合、{{setTableDefinition()}}メ゜ッドの{{setTableName()}}メ゜ッドを䜿甚しおこれをオヌバヌラむドできたす。 
    82101 
    83  
    84102++ テヌブルオプション 
     103 
    85104Doctrineは様〠
    86 ãªãƒ†ãƒŒãƒ–ルオプションを提䟛したす。すべおのテヌブルオプションは{{Doctrine_Record::option($optionName, $value)}}を通しお蚭定できたす。 
     105なテヌブルオプションを提䟛したす。すべおのテヌブルオプションは {{Doctrine_Record::option($optionName, $value)}} を通しお蚭定できたす。 
    87106 
    88107䟋えば、MySQLを䜿甚しおいおINNODBテヌブルを䜿甚したい堎合次のように行われたす: 
     
    100119</code>  
    101120 
    102 æ¬¡ã®äŸ‹ã«ãŠã„おç 
    103 §åˆé †åºãšæ–‡å­—セットオプションを蚭定したす: 
     121<code type="yaml"> 
     122--- 
     123MyInnoDbRecord: 
     124  columns: 
     125    name: string 
     126  options: 
     127    type: INNODB 
     128</code> 
     129 
     130次の䟋ではコレヌト(ç 
     131§åˆé †åº)ず文字セットのオプションを蚭定したす 
    104132 
    105133<code type="php"> 
     
    116144</code> 
    117145 
     146<code type="yaml"> 
     147--- 
     148MyCustomOptionRecord: 
     149  columns: 
     150    name: string 
     151  options: 
     152    collate: utf8_unicode_ci 
     153    charset: utf8 
     154</code> 
     155 
     156䞀郚のデヌタベヌス(Firebird, MySql, PostgreSQLなど)では文字セットオプションを蚭定するだけではDoctrine 
     157が正しいデヌタを返さないこずがありたす。これらのデヌタベヌスではデヌタベヌス接続の際にsetCahtset関数を䜿うこずをお勧めしたす。 
     158 
     159<code type="php"> 
     160Doctrine_Manager::connection($name)->setCharset("utf8"); 
     161</code> 
     162 
    118163Doctrineは特定のモデルに察しお倖郚キヌを停止する胜力を提䟛したす。 
    119164 
     
    131176 
    132177++ カラム 
     178 
    133179+++ カラムの呜名 
     180 
    134181デヌタベヌスの互換性に関する䞀぀の問題は倚くのデヌタベヌスが返されたク゚リの結果セットの振る舞いに関しお倚くのデヌタベヌスが異なるこずです。MySQLはフィヌルド名を倉曎しないたたにしたす、このこずは、"SELECT myField FROM ..."圢匏のク゚リを発行する堎合、結果セットは'myField'フィヌルドを含むこずを意味したす。 
    135182