-2

私はデータベース プログラミングに比較的慣れていないので、Android で自分の仕事用にデータベースを作成するタスクを与えられました。いくつかの基本的な SQL ステートメントを使用して単純なものを作成できました。しかし、まったくの初心者である私は、DB アーキテクチャについてあまり知らないので、スプレッドシートの内容をデータベースに押し込みました (文字通り直接マッピング)。デバイスからデスクトップに DB を抽出し、SQLiteBrowser ツールを調べたところ、データのクエリで問題が発生することがわかりました (以下を参照)。グーグルを行った後、DB正規化と呼ばれるものに出くわし、この特定の状況にどのように適用できるか疑問に思っていました:

次の列を含む Excel スプレッドシートがあります。

Region Sku Language App1 App2 App3 App4 ...
  US   AAA    EN     x    x   
 CAN   BBB    EN     x         x
  FR   CCC    FR          x         x
 ...

これは基本的に、(アプリケーションのパッケージ名に基づいて) デバイスで非表示にするアプリを決定するために使用されるデータです。「x」は、特定の地域、SKU、および言語のアプリが非表示にならないことを示し、空白は非表示になることを示します。

私は Web でいくつかの記事を読みましたが、ほとんどが NF3 形式に移行することを提案していますが、このデータ セットについては、NF1 形式に変換するのに苦労しています。助言がありますか?

4

1 に答える 1

0

サポートされているアプリの新しい表を追加します。1 対多の関係で、新しいテーブルの主キーを元のテーブルの外部キーにします。元のテーブルから APP1、App2 などのフィールドを削除します。最初のテーブルの特定のレコードがサポートするアプリごとに、サポートされるアプリ テーブルに新しいレコードを追加します。

于 2013-05-20T23:32:24.240 に答える