2016-12-22 8 views
0

私はレストランのAndroidメニューアプリを開発しています。表示するために、各カテゴリのカテゴリとアイテムのみを表示する必要があります。いつでもカテゴリやアイテムを編集してほしいです。AndroidのSQLiteデータベースデザイン

SQLiteデータベースは、私が現在行っているオプションですが、問題があります。たとえば、朝食、サラダ、前菜などは、SQLテーブルのカテゴリにあります。次に、朝食用のアイテムとサラダのアイテム用の別のSQLテーブルがあり、各アイテムには画像、タイトル、価格が含まれます。

今、カテゴリテーブルに新しいカテゴリを追加できるとします。そのカテゴリのアイテムテーブルはどうですか?どのように自動的に追加することができますか?この問題についてもっと良い方法がありますか?

+0

なぜ各カテゴリに独自のテーブルがありますか? – Stefan

+0

各カテゴリには独自のテーブルがありますか? – njzk2

+0

Javaでオブジェクトをどのようにモデリングしますか?あなたがそれを理解できれば、おそらくレルムがより良い選択肢になるでしょう。 https://realm.io/docs/java/latest/ –

答えて

1

カテゴリごとにテーブルは必要ありません。

2つのテーブル - カテゴリとアイテム。 Itemsテーブルには、このカテゴリのforeign keyが格納されます。

カテゴリー

_id | Name 
----| ------ 
1 | Breakfast 
2 | Lunch 
3 | Dinner 

アイテム

_id | name  | cat_id | price 
--- | --------- | ------ | ----- 
1 | Bagels | 1  | 1.00 
2 | Salmon | 3  | 14.99 

例は

SELECT name,price from Items where cat_id = 3; 

H、全ての夕食のアイテムを見つけるには

を問い合わせます多くのランチメニューがメニューに表示されます

SELECT COUNT(*) from Items WHERE cat_id = 2; 
+0

ありがとう、これははるかにエレガントです:) – fullMoon

0

私はこれらのテーブルで(私はそれを正しく理解すると仮定して)問題をモデル化します:

Categories table with columns - id, name, (any additional you need) 
CategoryItems table with columns - id, categoryId, name, (any additional you need) 

区分をCategoriesテーブルにFKです。そうすれば、あなたのアイテムは常に彼らが所属する適切なカテゴリを参照します。誰かが新しいカテゴリを追加したときに、新しいアイテムを追加するときに、新しいアイテムと一緒にcategoryIdを正しく埋め込むようにするだけです。

希望すると便利です。

+0

これは良いデザインの選択だと思われますが、あなたはFKで詳しく説明できますか? – fullMoon

+0

categoryIdはカテゴリid列に関連しています - それはFK(データベース用語集の外来キー)の意味です – oddmeter

+0

感謝します – fullMoon

関連する問題