基本上我的系統是用戶每10條評論就獲得獎勵。所以,在數據庫中,一個表格捕獲評論,另一個表格每增加10條評論就會獲得一個獎勵。例如,如果用戶添加了40條評論,他們將在表2中有4個獎勵/ 4行。在另一個表中爲每個第n個條目添加一行
對我來說這聽起來很簡單,但我似乎無法想象它。也許有一個模數運算符可以幫助,但我需要每次在表2中添加一個新行,而不是覆蓋,或者每次重寫行。
幫助讚賞;我有一種感覺,就在我面前!
基本上我的系統是用戶每10條評論就獲得獎勵。所以,在數據庫中,一個表格捕獲評論,另一個表格每增加10條評論就會獲得一個獎勵。例如,如果用戶添加了40條評論,他們將在表2中有4個獎勵/ 4行。在另一個表中爲每個第n個條目添加一行
對我來說這聽起來很簡單,但我似乎無法想象它。也許有一個模數運算符可以幫助,但我需要每次在表2中添加一個新行,而不是覆蓋,或者每次重寫行。
幫助讚賞;我有一種感覺,就在我面前!
我猜你有第一張表的模型,或者至少有一個插入的函數。你C和一些更多的功能該功能,並且這樣做:
$current = count_your_current_coments();
if (fmod($current, 10) == 0) {
insert_into_second_Table();
}
您將不得不計算用戶每次發表評論時添加的評論數量。如果註釋%10 == 0,那麼你將不得不在你的表2中添加一個新行(用於獎勵)。
if number_of_comments % 10 == 0
的評論 - >不要插入獎勵表這是我應該做的方式。
獎勵是否獨一無二,以至於您實際上有有在單獨的表中跟蹤它們?或者您可以只計算用戶在需要時提出的評論數量?
在你確實需要跟蹤一個單獨的表的回報,考慮觸發事件:
create trigger insert_trigger after insert on comments_table
for each row begin
if (select count(*) from comments_table where user_id = new.user_id) mod 10 = 0 then
insert into rewards_table (user_id) values (new.user_id);
end if;
end;
如果允許從comments表刪除,你還需要對相應的on delete
觸發評論表,用於測試用戶是否仍然有正確的獎勵數量,如果不是,則必須決定要刪除哪個獎勵。
我的想法是,你需要做更多的領域爲標誌。你可以將它命名爲enum。 '是'或'否'。每次插入評論時,您都可以保存默認的'N'並檢查數據庫。
SELECT count(my_comment) FROM comments WHERE rewarded = 'N';
使用modulo來檢查它是否達到10條評論。如果是,則向另一個表中插入一行並將'N'獎勵字段更新爲'Y'