アプリケーションに最適な DB 構造と SQL を見つけようとしています。
シナリオは次のとおりです。
Jim と John は、さまざまなプロジェクトのタイム シートを毎週更新する必要があります。これを行うとき、彼らは html フォームを使用して、週の最終日の日付に基づいて時間を挿入します。
これで問題ありません。名前、プロジェクト、日付、時間の新しい行が挿入されます
ただし、ジムとジョンが予想よりも多くの時間を費やし、タイムシートを更新する必要がある場合は、フォームを使用できるようにしたいと思いますUPDATE
。名前、プロジェクト名、および日付が一致する場合、DB の時間列が表示されます。提出したもの。
挿入する SQL:
INSERT OR REPLACE INTO RESOURCE(NAME, DATE, PROJECT, HOURS) VALUES ('"+ name+ "', '"+ date+ "', '"+ project+ "','" + hours + "');
これまでの作業:
SQLITE DB に以下の DB 構造を作成しました。
CREATE TABLE RESOURCE (
name VARCHAR(16),
date DATE,
project VARCHAR(16),
hours VARCHAR(16)
)
そして、私の問題を解決するために次のインデックスを作成しました。
CREATE UNIQUE INDEX myindex ON RESOURCE(NAME, DATE, PROJECT)
ただし、問題は、ジムがジョンと同じ日付、プロジェクト、および時間について自分の時間を更新すると、ジョンの行が置き換えられ、ジムだけが残ることです。
この問題を明確に説明できれば幸いです。そうでない場合はお知らせください。他に必要なものは何でも提供します。
私の質問は、この前述のシナリオを機能させるために、SQL または DB 構造で何を変更できますか?