ダッシュボードでクラスを作ってみる
では、まず試しにダッシュボードからデータストアにクラスを作成して、レコードを登録してみましょう。
ダッシュボードからクラスを作成するには、データストアを選び、緑の「+作成」ボタンをクリックして新規作成を選びます。
まず、新しいクラスのクラス名をListNameClassのように入力して、作成ボタンを押します。
新しいクラスを作成するとシステムにより4つのフィールドが自動的に追加されます。objectIdはレコードを一意に識別するIDです。このobjectIdには自動的に重複しない値が振られるので、アプリ側で値を与える必要はありません。createDateは作成日時です。レコードを作成した日時が自動的に記録されます。updateDateは同様に更新日時です。acl(Access Control List)は特殊なフィールドです。aclについては後ほど解説することにして、名簿テーブルのフィールドを追加していきましょう。
フィールドを追加するには、「+新しいフィールド」ボタンを押して、フィールド名を入力します。
mname(名前)、gender(性別)、birth(生年月日)の3つのユーザー定義のフィールドを追加しました。
次がレコードを1件追加したところです。ユーザー定義のフィールドに値を入力すると、objectIdにIDが設定されます。また、createDate、updateDateに日時が設定されます。updateDateの日時は、その後、フィールドの値を変更するたびに更新されます。
クラスでは、フィールドのデータ型を指定する必要はないと書きましたが、キーボードから入力するときは、データ型を指定することができます。
というのは、前の画像の名前のようなフィールドは文字列として入力するしかありませんが、gender(性別)は0と1の数字で入力します。キーボード入力の数字は文字列として扱うことができますが、数値として扱うこともできます。ですから、入力時にデータ型を指定することができるようになっています。また、birth(生年月日)を日付として入力するには、時間も入力する必要があったので、文字列として入力しました。
これらのことから、NCMBのデータストアでは入力されたデータからデータ型を判断しているのだと推測できます。そうだとしたら、性別フィールドで数値と指定して0を入力したら、RDBで言うところのこの列は、数値型と決まってしまい、次のレコードで入力する性別の値は数値だと自動的に判断されてしまうのでしょうか。
どうも、そうでもないようです。極端な例として、名前を配列形式で入力してみました。"青木 一郎"は文字列型として記憶されていますが、["伊藤 蘭子",""]は配列型です。
ということはレコード毎にフィールド入力された値と形式によりデータ型を判断していると推測できます。