2016-12-22 82 views
0

我正在开发一个餐厅的Android菜单应用程序。它应该只显示每个类别的类别和项目用于显示目的。我希望他们随时编辑类别和项目。Android SQLite数据库设计

SQLite数据库是我目前使用的选项,但是我遇到了问题。例如,早餐,沙拉,开胃菜等。都在sql表中。然后,还有另一个用于早餐项目的sql表格,另一个用于沙拉的项目等。每个项目都会包含图片,标题和价格。

现在,假设他们可以在类别表中添加一个新类别,那么该类别的商品表格如何?它怎么能自动添加?有没有更好的方法去解决这个问题?

+0

为什么每个类别都有自己的表? – Stefan

+0

每个类别都有自己的表? – njzk2

+0

你会如何模拟Java中的对象?如果你能弄清楚,那么Realm可能是更好的选择。 https://realm.io/docs/java/latest/ –

回答

1

你不需要每个类别的表。

两个表 - 类别和项目。 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 ow菜单上的很多午餐项目

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) 

的categoryId是一个FK的分类表。这样你的物品总是会回到他们所属的适当类别。您需要做的就是确保当有人添加新类别时,在添加新项目时,您应该将每个新项目与类别标识一起填充。

希望这会有所帮助!

+0

这似乎是一个很好的设计选择,但是您能否详细阐述FK? – fullMoon

+0

categoryId与分类id列有关 - 这就是我所说的FK(数据库说法中的外键) – oddmeter

+0

谢谢你有道理 – fullMoon