# リボン検索アプリ ## 作成するデータベース ### POKEDEX すべてのポケモンの情報を持つデータベース。 名前や特性などの基本的な情報を持つ。 - pokedex number INTEGER型。 ポケモンごとに割り振られている固有の番号。 重複が認められないため、単体で主キーになる。 - name CHARACTER型。 ポケモンの名前。 重複およびNULLを認めない。 - type1 CHARACTER型。 ポケモンが持つタイプの1つ目。 重複は認めるが、NULLを認めない。 - type2 CHARACTER型。 ポケモンが持つタイプの2つ目。 重複もNULLを認める。 - ability1 CHARACTER型。 ポケモンが持つ特性の1つ目。 重複は認めるが、NULLは認めない。 - ability2 CHARACTER型。 ポケモンが持つ特性の2つ目。 重複もNULLも認める。 - ability3 CHARACTER型。 ポケモンが持つ特性の3つ目。 重複もNULLも認める。 - ribbon BOOLEAN型。 ポケモンにつけることができるリボン。 入手することができるポケモンはTrueを、できないポケモンはFalseを持つ。 ### RIBBON すべてのリボンの情報を持つデータベース。 リボンの名前とその入手条件を情報として持つ。 - ribbon CHARACTER型。 リボンの名前。 重複およびNULLを認めない。 - generation INTEGER型。 リボンが入手できる最後の世代。 重複は認めるがNULLは認めない。 - howto CHARACTER型。 リボンの入手条件を文章の形で持つ。 重複は認めるが、NULLは認めない。 ### ROUTE リボンコンプリートのための道筋の情報を持つデータベース。 リボンの入手可能条件にかかわる要素の情報を、ポケモンごとに持つ。 - name CHARACTER型。 ポケモンの名前であり、外部キーである。 重複およびNULLを認めない。 - generation INTEGER型。 ポケモンが初登場した世代。 自身より前の世代のリボンは入手できない。 重複は認めるがNULLは認めない。 - legend BOOLEAN型。 伝説または幻のポケモンはTrueを、それ以外のポケモンはFalseを持つ。 伝説および幻のポケモンはバトル施設に参加できないため、ウイニングリボンやビクトリーリボンをはじめとするバトル施設限定のリボンが入手できない。 - dark BOOLEAN型。 ポケモンコロシアムまたはポケモンXDでダークポケモンとして出現していればTrueを、そうでなければFalseを持つ。 ダークポケモンでなければナショナルリボンが入手できない。 ### IP リボンコンプリートルートをお気に入り登録しておくための情報を持つデータベース。 IPアドレスとポケモンの名前を情報として持つ。 - IP CHARACTER型。 ユーザのIPアドレス。 重複およびNULLを認めない。 - name ポケモンの名前。 リボンコンプリートルートはポケモンごとに固有であるため、名前さえ分かればリボンコンプリートルートを知ることができる。 重複およびNULLを認めない。 ## 実装する機能 ### 入手できるリボンをポケモンごとに表示 ポケモンの図鑑番号と名前、各リボンの入手可否を表の形で表示する。 図鑑番号やポケモンをはじめ、タイプや特性などで絞り込み検索をする機能も実装する。 ### リボンコンプリートルートの検索 ポケモンの名前を入力することで、そのポケモンのリボンコンプリートルートが表示されるような検索機能を実装する。 ### リボンコンプリートルートのお気に入り登録 リボンコンプリートルートをお気に入り登録しておくことで、後から簡単に確認できるような機能を実装する。 ユーザのIPアドレスとお気に入り情報を関連付けることで、アカウント登録の必要をなくす。