SPIRAL ver.2でDBを作成するときに、フィールドのどのタイプを使用するべきか判断が難しいことがあると思います。
この記事では、どのフィールドタイプを使うべきか判断する方法や間違えやすいポイントを、例を挙げながら紹介していきます。
この記事では、どのフィールドタイプを使うべきか判断する方法や間違えやすいポイントを、例を挙げながら紹介していきます。
変更・改定履歴
-
改定
同意チェックボックスパーツについての説明を追記
-
改定
Web申請DBの例:最新情報に変更
-
改定
ユーザーフィールドを追記
データが格納できるフィールドタイプを探す
まず、想定されるデータが格納できるフィールドタイプを探すことが必須です。
下記のフィールドタイプの一覧と項目例を参考に、候補となるフィールドタイプを絞り込みます。
下記のフィールドタイプの一覧と項目例を参考に、候補となるフィールドタイプを絞り込みます。
※それぞれのフィールドタイプの詳細仕様については フィールドタイプリファレンスをご確認ください。
| フィールドタイプ | 説明 | 項目例 |
|---|---|---|
| テキスト | 改行を含まない最大128字の文字列を格納します。 半角、全角、文字バイト数などの区別はなく単純な文字数で最大128字となります。 |
・氏名 ・郵便番号 ・会員ID ・お申込み番号 |
| テキストエリア | 改行を含む最大20,000字の文字列を格納します。 半角、全角、文字バイト数などの区別はなく単純な文字数で最大20,000字となります。 |
・お問い合わせ内容 ・担当者用メモ |
| メールアドレス | メールアドレスを格納します。 入力値に大文字が含まれる場合、小文字へ自動変換されます。 |
・メールアドレス |
| セレクト | 択一の選択肢を格納します。 選択肢は300個まで設定可能です。 ラベルIDは0~999まで指定できます。 |
・性別 ・業種 ・都道府県 |
| マルチセレクト | 複数選択可の選択肢を格納します。 選択肢は300個まで設定可能です。 ラベルIDは0~999まで指定できます。 |
・カテゴリ ・希望する資料 ・当店を知ったきっかけ ・応募要項同意 |
| 整数 | 整数を格納します。 | ・個数 ・金額 ・日数 |
| 数値 | 15桁までの実数を格納します。 | ・平均点 ・年利 ・体重 |
| 電話番号 | 国コードを含む電話番号を格納します。 実在するフォーマットの電話番号でないとエラーになります。 |
・電話番号 |
| 日時 | 日時(〇年〇月〇日〇時〇分〇秒 + タイムゾーン)を格納します。 | ・支払い完了日時 ・同意取得日時 |
| 日付 | 日付(〇年〇月〇日)を格納します。 | ・生年月日 ・契約日 ・予約日 |
| 月日 | 月日(〇月〇日)を格納します。 | ・誕生日 |
| 時刻 | 時刻(〇時〇分〇秒)を格納します。 | ・退勤時刻 |
| ファイル | ファイルを格納します。 | ・本人確認書類 ・画像 ・議事録 |
| パスワード | パスワードを格納します。 入力値はハッシュ値にて格納されます。 データ操作画面では値の有無のみが表示されます。 |
・パスワード |
| 参照フィールド | 同一アプリ内にある別DBのレコードを参照して、レコード同士をデータ連携させることができるフィールドタイプです。 参照フィールドの機能説明は、参照フィールド(データ連携)をご確認ください。 |
・ID(セミナーDB) ・部署名(部署DB) ・製品番号(製品DB) |
| ユーザフィールド | アカウントに参加しているユーザやライトユーザを格納します。 ユーザフィールドの機能説明は、ユーザフィールドをご確認ください。 |
・申請者 ・承認者 ・対応者 |
フィールドタイプの使い分け
・「テキスト」と「テキストエリア」
改行を含む場合または129文字以上場合は「テキストエリア」を、改行を含まない128文字以内のデータを格納する場合は「テキスト」を使用します。
128文字を超える場合は、「テキスト」フィールドを複数に分ける方法もあります。
(「住所」を、「住所(市区町村)」と「住所(番地以降)」に分けるなど)
・「セレクト」と「マルチセレクト」
128文字を超える場合は、「テキスト」フィールドを複数に分ける方法もあります。
(「住所」を、「住所(市区町村)」と「住所(番地以降)」に分けるなど)
選択肢のうち、1つしか選択できない項目には「セレクト」を、複数選択可の項目には「マルチセレクト」を使用します。
・「整数」と「数値」
小数点を含まない場合は「整数」を、小数点を含む場合は「数値」を使用します。
・「参照フィールド」と「ユーザフィールド」
アカウントに参加しているユーザやライトユーザを指定する場合は「ユーザフィールド」を、アカウントに参加していないユーザ(会員DBの会員など)を指定する場合は「参照フィールド」を使用します。
フォームやアプリ利用画面での入力欄の見た目で決める
フィールドタイプの一覧やフィールドタイプリファレンスを確認しただけでは、1つのフィールドタイプに絞ることができない場合があるかと思います。
そのような場合は、フォームやアプリを作成したときにどのような入力欄として表示されるかで判断するのがオススメです。
そのような場合は、フォームやアプリを作成したときにどのような入力欄として表示されるかで判断するのがオススメです。
フォームでの入力欄
フォームを作成する予定のDB(会員DB、お問い合わせDB など)では、フォームにしたときの入力欄を参考にフィールドタイプを選択します。
デモのフォームは、デフォルトの設定での入力欄です。
フィールド設定をすることで、一部カスタマイズできるフィールドタイプもあります。
デモのフォームは、デフォルトの設定での入力欄です。
フィールド設定をすることで、一部カスタマイズできるフィールドタイプもあります。
フィールド設定でのカスタマイズ例
| メールアドレス パスワード |
確認入力欄を無くす |
| 日時 日付 月日 時刻 |
入力欄を1つにまとめる |
| 日時 時刻 |
「秒」の入力欄を無くす |
アプリ利用画面での入力欄
間違えやすいポイント
フィールドタイプを選ぶ際に間違えやすいポイントを説明いたします。
認証エリアのIDに使えるのは「テキスト」と「メールアドレス」だけ
認証エリアのIDフィールドは、入力必須かつ重複不可の「テキスト」または「メールアドレス」フィールドのみ設定できます。
テキストエリアや電話番号では、入力必須かつ重複不可に設定したとしても認証エリアのIDフィールドに使用することはできません。
テキストエリアや電話番号では、入力必須かつ重複不可に設定したとしても認証エリアのIDフィールドに使用することはできません。
お客様番号、製品番号などは整数ではなく「テキスト」を使う
「100023」や「00456」など、数字しか入力されないような項目でも、数量を表す項目でない場合は「テキスト」を使います。
整数を使用した場合、認証エリアのIDフィールドとして使えない。0埋めが消えてしまう。正規表現が使えない。といった問題が発生することがあります。
整数を使用した場合、認証エリアのIDフィールドとして使えない。0埋めが消えてしまう。正規表現が使えない。といった問題が発生することがあります。
キャンペーンコード、紹介コードなどはパスワードではなく「テキスト」を使う
パスワードフィールドは値の有無のみが確認でき、値の中身を確認する手段はありません。
認証エリアへのログインパスワードとして使用する項目以外は、テキストを使用するようにしてください。
認証エリアへのログインパスワードとして使用する項目以外は、テキストを使用するようにしてください。
都道府県はテンプレートが利用可能
都道府県の項目をセレクトで用意する場合、設定画面上からテンプレートを利用することができます。
47都道府県分のラベルを手入力したり、TSVを用意したりする必要はありません。
47都道府県分のラベルを手入力したり、TSVを用意したりする必要はありません。
同意事項などのチェック項目を取得するフィールドは、セレクトよりも「マルチセレクト」がオススメ
利用規約や個人情報に関する同意などは、DBにフィールドを用意しなくてもフォームブロックの同意チェックボックスパーツで対応することができますが、1つのフォームに複数のチェック項目を作成する場合や、チェックされたというデータを残したい場合はDBにフィールドを用意して入力欄を作成します。
その場合、ビジュアル設定でフォームを作成するのであれば「マルチセレクト」を使用するのがオススメです。
セレクトで作成をすると、フォームに選択肢を追加した際にラジオボタン(一回チェックを入れたら外せない)になってしまいます。
マルチセレクトで作成した場合は、チェックボックス(チェックの付け外しができる)になるため、同意事項のように選択肢が1つとなる項目はマルチセレクトの使用をオススメします。
※ソース設定の場合は、「type="checkbox"」に変更することで対応できるため、「セレクト」でも問題ありません。
その場合、ビジュアル設定でフォームを作成するのであれば「マルチセレクト」を使用するのがオススメです。
セレクトで作成をすると、フォームに選択肢を追加した際にラジオボタン(一回チェックを入れたら外せない)になってしまいます。
マルチセレクトで作成した場合は、チェックボックス(チェックの付け外しができる)になるため、同意事項のように選択肢が1つとなる項目はマルチセレクトの使用をオススメします。
※ソース設定の場合は、「type="checkbox"」に変更することで対応できるため、「セレクト」でも問題ありません。
データメンテナンスのための項目は自動で付加されます
以下の項目はDB作成時に自動で付加されるため、フィールドを追加する必要はありません。
| 項目名 | 説明 |
|---|---|
| 作成日 | データが登録された日時(例:20XX/XX/XX 12:00:00) |
| 作成経路 | データの登録元(例:Form ※フォームからの登録の場合) |
| 作成者 | データを登録した人物名 (例:○○フォーム ※フォームから登録した場合はフォーム名) (例:ナレッジ 太郎 ※データ操作画面からの場合はユーザ名) |
| 最終更新日時 | データが更新された日時(例:20XX/XX/XX 15:00:00) |
| 最終更新経路 | データの更新元(例:UI ※データ操作画面からの更新の場合) |
| 最終更新者 | データを更新した人物名 (例:ナレッジ 太郎 ※データ操作画面からの場合はユーザ名) |
DBのフィールドタイプ例
お問い合わせDBの例
| 項目名 | フィールドタイプ | |
|---|---|---|
| 対応ステータス | セレクト | 事務局が入力する項目 |
| 対応者 | ユーザフィールド ※ 問い合わせ対応に関わる人が、アプリが構築されているアカウントに 参加している必要があります。 |
|
| 対応内容 | テキストエリア | |
| 回答メール文面 | テキストエリア | |
| 回答メール送信フラグ | セレクト | |
| 部署名 | セレクト | |
| 氏名 | テキスト | 申請者が入力する項目 |
| 法人名 | テキスト | |
| メールアドレス | メールアドレス | |
| 電話番号 | 電話番号 | |
| メールアドレス | メールアドレス | |
| お問い合わせ種別 | セレクト | |
| お問い合わせ内容 | テキストエリア | |
| 個人情報の取り扱い | マルチセレクト |
Web申請DBの例
Web申請アプリ アプリ(DB・メール)設計・構築でのDB設定例です。
| 項目名 | フィールドタイプ | |
|---|---|---|
| 申請番号 | テキスト | 申請者が入力する項目 |
| 氏名 | テキスト | |
| 会社名 | テキスト | |
| 郵便番号 | テキスト | |
| 都道府県 | セレクト | |
| 市区町村・番地 | テキスト | |
| ビル名・部屋番号等 | テキスト | |
| 電話番号 | 電話番号 | |
| メールアドレス | メールアドレス | |
| 業種 | セレクト | |
| 業種_その他 | テキスト | |
| 書類ファイル | ファイル | |
| 同意 | マルチセレクト | |
| ステータス | セレクト | 事務局が入力する項目 |
| 【申請者向け】事務局担当者コメント入力 | テキストエリア | |
| 【事務局長向け】事務局担当者コメント入力 | テキストエリア | |
| 【事務局担当者向け】事務局長コメント入力 | テキストエリア |
キャンペーン応募DB
キャンペーン応募アプリ アプリ(DB・メール)設計・構築でのDB設定例です。
| 項目名 | フィールドタイプ | |
|---|---|---|
| 応募要項同意 | マルチセレクト | 応募者が入力する項目 |
| お名前 | テキスト | |
| メールアドレス | メールアドレス | |
| Q1.SPIRAL ver.2をどちらで知りましたか? | セレクト | |
| Q1.SPIRAL ver.2をどちらで知りましたか?_その他 | テキスト | |
| Q2.SPIRAL ver.2で使用したい機能はどれですか? | マルチセレクト | |
| Q3.SPIRAL ver.2の満足度を教えてください。 | セレクト | |
| 個人情報の取扱い | マルチセレクト | |
| 【当選者発送先】郵便番号 | テキスト | 当選者が入力する項目 |
| 【当選者発送先】都道府県 | セレクト | |
| 【当選者発送先】市区町村・番地 | テキスト | |
| 【当選者発送先】ビル名・部屋番号等 | テキスト | |
| 【当選者発送先】電話番号 | 電話番号 | |
| 当落フラグ | セレクト | 事務局が管理する項目 |
| 発送情報登録フラグ | セレクト | |
| 商品発送日 | 日付 | |
| 【事務局当落通知者用】メモ | テキストエリア | |
| 【事務局発送担当者用】メモ | テキストエリア | |
| 【マーケティング部用】メモ | テキストエリア |