哪种SQL可以工作?
我正在努力为我的应用程序找出最佳的数据库结构和SQL 情况是这样的: 吉姆和约翰需要每周更新他们的时间表,以适应不同的需求 项目。当他们这样做时,他们使用一个html表单来插入他们的 小时数基于一周最后一天的日期 这很好,将插入一个包含名称、项目、日期和小时的新行 但是,如果jim和john的工作时间超过预期,并且需要更新他们的时间表,我希望他们能够使用该表单,并且如果名称、项目名称和日期与提交的内容相匹配,该表单将更新数据库上的小时数栏 要插入的SQL语句:哪种SQL可以工作?,sql,database,sqlite,Sql,Database,Sqlite,我正在努力为我的应用程序找出最佳的数据库结构和SQL 情况是这样的: 吉姆和约翰需要每周更新他们的时间表,以适应不同的需求 项目。当他们这样做时,他们使用一个html表单来插入他们的 小时数基于一周最后一天的日期 这很好,将插入一个包含名称、项目、日期和小时的新行 但是,如果jim和john的工作时间超过预期,并且需要更新他们的时间表,我希望他们能够使用该表单,并且如果名称、项目名称和日期与提交的内容相匹配,该表单将更新数据库上的小时数栏 要插入的SQL语句: INSERT OR REPLACE
INSERT OR REPLACE INTO RESOURCE(NAME, DATE, PROJECT, HOURS) VALUES ('"+ name+ "', '"+ date+ "', '"+ project+ "','" + hours + "');
迄今为止的工作:
我已经在SQLITE数据库上创建了下面的数据库结构
CREATE TABLE RESOURCE (
name VARCHAR(16),
date DATE,
project VARCHAR(16),
hours VARCHAR(16)
)
为了解决我的问题,我创建了以下索引
CREATE UNIQUE INDEX myindex ON RESOURCE(NAME, DATE, PROJECT)
然而,问题是当jim更新了与john相同的日期、项目和时间时,john,Johns row被替换,只剩下jims
希望我已经解释清楚这个问题,如果没有请让我知道,我会提供任何其他需要
我的问题是:我可以用我的SQL或DB结构更改什么,以允许上述场景工作?我得到的是,当jim/jhon再次输入计时时,执行更新查询,更新整个记录,而不是更新jim/jhons自己的记录。主要原因是您的表中没有任何唯一的键/主键,这就是为什么您的查询更新了很多 您需要做的是有一个键列,并根据该键更新它们的记录,您将在where子句中使用类似的内容
其中RESOURCE_ID=@RID//ID是该特定资源的我认为您应该有一个名为resourceId的唯一列,这将是资源jim和john的标识。还有jim是如何为john更新时间表的?resourceid列是如何工作的?如果jim或john在同一日期、不同项目和不同时间有多个条目,会发生什么情况?然后您只需根据资源id更新行。@AshReva我不确定我是否理解。DB如何知道更新哪个id?这将从您的网页发送