Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 用于存储搜索词和产品的数据库设计是什么?_Database Design_Sqlite_Relational Database_Foreign Key Relationship - Fatal编程技术网

Database design 用于存储搜索词和产品的数据库设计是什么?

Database design 用于存储搜索词和产品的数据库设计是什么?,database-design,sqlite,relational-database,foreign-key-relationship,Database Design,Sqlite,Relational Database,Foreign Key Relationship,我正在制作一个Android应用程序,我正在使用SQLite,但我很难弄清楚如何设计数据库 我所做的是按搜索词显示商店中的产品。我想不出设计db的最佳方法,这样当应用程序离线时,用户搜索某个内容时,就会显示正确的产品。每个产品可以有多个搜索词 这就是我到目前为止的想法 Product(int id, String productName, String image) Search(int id, String term, int productID) 因此,我将保存产品表中的所有产品,然后针对

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

我所做的是按搜索词显示商店中的产品。我想不出设计db的最佳方法,这样当应用程序离线时,用户搜索某个内容时,就会显示正确的产品。每个产品可以有多个搜索词

这就是我到目前为止的想法

Product(int id, String productName, String image)
Search(int id, String term, int productID)
因此,我将保存产品表中的所有产品,然后针对每个产品,我将在搜索表中创建一个条目。这意味着产品可能有多个搜索词


这是一个好的策略吗?

我会将您的表格设计得稍有不同,但概念很好。这是您正在应用的规范化的第二条规则,例如,请参见

我已经稍微改写了你的设计:

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)
);
那就行了。我使用名称类别进行搜索,并使用名称products而不是product。表名通常是复数形式,我已经习惯了