使用什么数据库设计来存储搜索词和产品?

What database design to use for storing search terms and products?

我正在制作一个 Android 应用程序,我正在使用 SQLite,但我很难弄清楚如何设计数据库。

我正在做的是按搜索词展示商店的产品。我想不出设计数据库的最佳方法,以便当应用程序处于离线状态并且用户搜索某些内容时,将显示正确的产品。每个产品可以有多个搜索词。

这就是我目前想到的。

Product(int id, String productName, String image)
Search(int id, String term, int productID)

所以我将保留产品 table 中的所有产品,然后我将在搜索 table 中为每个产品创建一个条目。这意味着该产品可能有多个搜索词。

这是个好策略吗?

我会设计你的桌子有点不同,但这个概念很好。这是您正在应用的第二条规范化规则(例如参见 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)
);

那就行了。我使用名称类别进行搜索,并使用名称产品而不是产品。表名通常是复数,我已经习惯了。