- From: Toru Yoshikawa <pikotea@gmail.com>
- Date: Mon, 21 Feb 2011 01:12:24 +0900
- To: Koji Ishii <kojiishi@gluesoft.co.jp>
- Cc: "public-html-ig-jp@w3.org" <public-html-ig-jp@w3.org>
はじめまして、吉川と申します。 こちらでは初ポストとなるかと思います。皆様よろしくお願い致します。 データベースの専門家というわけでなく、IndexedDBを囓っているという程度ですが 興味があったのでポストしてみます。 まず前提条件として、IndexedDBにデータを格納する場合、RDBMSのような明確な列を持っていません。 JavaScriptオブジェクトをそのまま保存する形になるので、そういう意味では対応する型(プロパティ)は、string、date、long、floatとなります。 そのため、例にあった電話番号は、ロケールに対応するべきプロパティがありません。 従来のRDBMSであれば、ロケールに対応しているものは、日付型もしくは通貨型となりますので、ここで 該当するのは日付型のみとなると思います。 恐らく議論の中心になるのは、collationだと思います。 IndexedDBは、指定したプロパティに対して索引を作成することができますが、その索引はソートされた状態で保持されます。 そのため、索引となるプロパティについては、照合順序の策定が必須となります。 ここでは、string型のデータが該当するかと思います。 日本語環境での各種RDBMSとNoSQLデータベースのcollationの仕様と利用状況等のデータが欲しいところでしょうか。 まずは、認識合わせとして簡単に書いてみましたが、ご意見、ご指摘頂ければと思います。 以上 2011/2/19 Koji Ishii <kojiishi@gluesoft.co.jp>: > IndexedDBにおいて、国際対応を行うための仕様変更が議論されています。 > > Databaseにcollationのための言語設定ができればいいんじゃないか、という議論のようですが、列ごとじゃなくていいのか、そもそもIndexedDBに列があるのかも含めて私はあまり知らないので、識者の方のご意見をお願いしたいです。 > > すでに「言語だけじゃなくて、『ドイツの電話番号』のように国、言語、目的を設定できるべきだ」[1]などのフィードバックが付いていますので、英語のできる方は元のMLで直接議論いただけるとよいと思います。 > > 難しいようであれば、ここで議論しても構いません。私はDatabaseはそれほど深くはないのでどこまで参加できるかわかりませんが、元MLに伝える努力はしてみます。 > > [1] http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0601.html > > -----Original Message----- > From: www-international-request@w3.org [mailto:www-international-request@w3.org] On Behalf Of Kang-Hao (Kenny) Lu > Sent: Saturday, February 19, 2011 1:50 PM > To: WWW International > Subject: Fwd: [IndexedDB] Spec changes for international language support > > You might want to follow the thread at http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/thread#msg599 > > -------- Original Message -------- > Subject: > [IndexedDB] Spec changes for international language support > Resent-Date: > Fri, 18 Feb 2011 02:40:43 +0000 > Resent-From: > public-webapps@w3.org > Date: > Fri, 18 Feb 2011 02:38:26 +0000 > From: > Pablo Castro <Pablo.Castro@microsoft.com> > To: > public-webapps WG <public-webapps@w3.org> > > We discussed international language support last time at the TPAC and I said I'd propose spec text for it. Please find the patch below, the changes mirror exactly the proposal described in the bug we have for tracking this: > http://www.w3.org/Bugs/Public/show_bug.cgi?id=9903 > > btw - the bug is assigned to Nikunj right now but I think that's just because of an editing glitch. Nikunj please let me know if you were working on it, otherwise I'll just submit the changes once I hear some feedback from this group. > > Thanks > -pablo > > > Left file: \IndexedDB Specs\20110217\Speclet_023_IDB_API_Asynchronous_APIs.original.html > Right file: \IndexedDB Specs\20110217\Speclet_023_IDB_API_Asynchronous_APIs.html > copy 6 > add 7 > <dt>readonly attribute DOMString language</dt> > <dd> > On getting, this attribute MUST return the <a title="database language">language</a> > that is configured in this database for string collation. If no collation has been > configured for a database this value is <code>null</code> and the database will > use binary collation. > </dd> > copy 6 > copy 6 > add 24 > <dt>IDBRequest setLanguage()</dt> > <dd> > <p> > This method changes the <a title="database language">language</a> used by the database > for string collation. Note that this method must only > be called from a <a><code>VERSION_CHANGE</code></a> <a>transaction</a> callback. > </p> > <p class="note"> > Changing the language in a database that already contains data typically involves reading and > re-writing the entire database and thus can be a time consuming operation. > </p> > <dl class="parameters"> > <dt>optional DOMString language</dt> > <dd>The language to be used in the database specified as a language identifier as > described in [[!BCP47]].</dd> > </dl> > <dl class="exception" title="IDBDatabaseException"> > <dt>NOT_ALLOWED_ERR</dt> > <dd>This method was not called from a <a><code>VERSION_CHANGE</code></a> <a>transaction</a> callback.</dd> > <dt>DATA_ERR</dt> > <dd>The language parameter contained a string that was not a valid language identifier or was a language > identifier not supported by the system.</dd> > </dl> > </dd> > copy 6 > > > > Left file: \IndexedDB Specs\20110217\Speclet_022_IDB_API_Synchronous_APIs.original.html > Right file: \IndexedDB Specs\20110217\Speclet_022_IDB_API_Synchronous_APIs.html > copy 6 > add 7 > <dt>readonly attribute DOMString language</dt> > <dd> > On getting, this attribute MUST return the <a title="database language">language</a> > that is configured in this database for string collation. If no collation has been > configured for a database this value is <code>null</code> and the database will > use binary collation. > </dd> > copy 6 > copy 6 > add 24 > <dt>void setLanguage()</dt> > <dd> > <p> > This method changes the <a title="database language">language</a> used by the database > for string collation. Note that this method must only > be called from a <a><code>VERSION_CHANGE</code></a> <a>transaction</a> callback. > </p> > <p class="note"> > Changing the language in a database that already contains data typically involves reading and > re-writing the entire database and thus can be a time consuming operation. > </p> > <dl class="parameters"> > <dt>optional DOMString language</dt> > <dd>The language to be used in the database specified as a language identifier as > described in [[!BCP47]].</dd> > </dl> > <dl class="exception" title="IDBDatabaseException"> > <dt>NOT_ALLOWED_ERR</dt> > <dd>This method was not called from a <a><code>VERSION_CHANGE</code></a> <a>transaction</a> callback.</dd> > <dt>DATA_ERR</dt> > <dd>The language parameter contained a string that was not a valid language identifier or was a language > identifier not supported by the system.</dd> > </dl> > </dd> > copy 6 > > > > Left file: \IndexedDB Specs\20110217\Speclet_020_IDB_API_Constructs.original.html > Right file: \IndexedDB Specs\20110217\Speclet_020_IDB_API_Constructs.html > copy 6 > add 4 > Every <a>database</a> also has a <dfn title="database language">language</dfn> that indicates the > language that should be used for collating strings when comparing keys. > </p> > <p> > copy 6 > copy 6 > delete 1 > add 2 > value with no need to separate them by type. When comparing a <code>DOMString</code> with another <code>DOMString</code>, the <a>database > language</a> should be used to determine the specific collation rules to be used. > copy 6 > > > > > -- Toru Yoshikawa mail: pikotea[at]gmail.com twitter: yoshikawa_t blog: http://d.hatena.ne.jp/pikotea/
Received on Sunday, 20 February 2011 21:28:16 UTC