MySQL データベースには、features という名前のフィールドがあるテーブルがあります。そこに保存する機能が 20 近くあります。Android モバイル アプリケーションからこれらの機能を取得しようとしています。アプリでは、行ごとに表示する必要があります (合計で 20 行)。のようなことをして、その単一のフィールドに20個の機能を保存する方法はあります\n
か? それとも、私のAndroidアプリで何かをして新しい行でそれらの機能を取得する方法はありますか?
3 に答える
まず、これはほぼ確実にひどい考えです...機能を単一のフィールドに格納すると、クエリと管理が非常に難しくなります。たとえば、機能「x」が利用可能なすべてのレコードを見つけるには、何らかの方法で機能フィールドを解析する必要がありますが、これはほとんどの場合、列のインデックスを使用しません。
選択の余地がない場合は、機能を何らかの文字列表現 (XML、JSON、CSV) として保存するか、機能をビット フラグとして保存するという 2 つのオプションがあります。
構造化されたテキスト形式を使用することを強くお勧めします。JSON はおそらく最も軽量です。人間が判読でき、簡単に解析できるからです。
クエリを実行してデータを取得するようにコードが設定されていると仮定すると、取得したデータをコレクション (配列またはリスト) に格納し、各項目をループして、必要なデータを画面に表示する必要があります。
データの表示は好きなように機能し、各レコードにボタンを追加したり、テキスト フィールドにテキスト行を書き込んだり (これはおそらくあなたの場合に適しています)、表にセルを作成したりできます。
すべてのデータを同じレコードに配置するわけではありません。個々の機能に合わせて調整されたフィールドを追加すると、面倒になる可能性があります。さらに、すべての機能を 1 つのレコードに結合し、後で機能を追加または削除する場合は、文字列操作を行う必要があります。
私はLONGTEXTを使います。TEXT と BLOB は 64K のデータを保持でき、LONGTEXTとLONGBLOB (主にバイナリ データに使用) は最大 4GB を保持できます。
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
はい、 /n は行区切りに適しています