我正在制作Android应用,而且我正在使用SQLite,但我很难搞清楚如何设计数据库。
我正在做的是通过搜索字词显示商店中的商品。我无法找出设计数据库的最佳方法,以便当应用程序处于脱机状态且用户搜索某些内容时,将显示正确的产品。每个产品都可以有多个搜索字词。
这是我到目前为止所想到的。
Product(int id, String productName, String image)
Search(int id, String term, int productID)
所以我将把所有产品都保存在产品表中,然后对于每个产品,我将在Search表中输入一个条目。这意味着该产品可能有多个搜索字词。
这是一个好策略吗?
答案 0 :(得分:0)
我会设计你的桌子有点不同,但概念很好。这是你正在应用的规范化的第二条规则(参见例如 http://databases.about.com/od/specificproducts/a/normalization.htm
我稍微重写了你的设计:
CREATE TABLE Products(
ID int primary key,
productname text,
image text);
CREATE TABLE Categories(
ID int primary key,
term text,
productid int,
FOREIGN KEY(productid) REFERENCES products(id)
);
然后它会起作用。我使用名称类别进行搜索,并使用名称产品而不是产品。表名通常是复数,我习惯了。