2013-05-14 93 views
1

我正在構建一個PHP應用程序,用於檢查數據庫中用戶的生日。 這些用戶在他們的生日時被授予各種禮物,他們可以從中選擇一個。我跟蹤他們選擇哪一個,所以我可以看到誰收到了禮物,誰還有一個禮物在等待。更新數據庫條目和/或保存已存在的條目

的目標羣體這個應用程序是企業,誰支付每名員工的費用,它是此應用程序的一部分。該應用程序旨在讓公司更容易記住員工的生日並表明他們關心。

隨着公司的成長/萎縮,因爲他們僱用,解僱員工,他們每個月都會使系統能夠排除那些誰不再在那裏工作,並增加新的員工來更新他們的員工名單。

現在我的問題是:我該如何做到最聰明的方式?

如果我要刪除以前與給定公司關聯的每個員工,當給予他們當前的員工名冊並從頭開始插入新的列表時,我將失去員工與未獲得/要求的禮物之間的關聯我的數據庫。另一方面,爲了確保我的數據庫中保持聯繫,如果我只是增加新員工並刪除那些不在名冊中的人員,我該如何以最聰明的方式去做這件事?

我的員工得到的字段是idfirstnamesurnameemailbirthdaycompany_id。這些都不是一個很好的方式來確定用戶是否已經在數據庫中(可以爭辯說電子郵件可能工作,但如果由於某種原因他們改變了它,它將不起作用)

任何建議更多然後歡迎。

+0

提示:剪短你的問題,否則用戶會跑掉 – 2013-05-14 11:51:52

+1

你需要幾件事情。一個是反對用戶的標誌,表明他們是否是一名活躍的員工,然後當你正在尋找人們給予的東西,只要選擇active = 1(或任何你稱之爲你的領域)。另一件事是你的新名單導入,而不是刪除用戶不再在那裏尋找比較的東西,如果你沒有通過公司的唯一僱員ID我建議匹配用戶的電子郵件地址,因爲他們應該是唯一的每個用戶,如果他們不在新的導入列表中,則將其活動標誌設置爲零。 – Dave 2013-05-14 11:55:49

+0

不錯,這聽起來很不錯,謝謝! – Rasmus 2013-05-14 11:58:05

回答

2

你可以簡單的字段添加到您的表的員工:

employeeID | name | isStillHired 

,當一個公司觸發您以這種方式設置爲false領域isStillHired僱員,你不會失去他

+0

聽起來像一個計劃!我會在可以的時候將它標記爲awnser,謝謝 – Rasmus 2013-05-14 11:58:38

3
引用

最簡單的答案是將employee_id添加到您的數據庫。每家公司都有內部ID,用於識別系統內部的員工。這對於許多目的是必要的,包括薪資,福利,考勤等。因此,您只需將此ID字段添加到您的employee表中,並確保您收到的名單包含所有員工的這些ID。

此外,而不是刪除條目員工不再爲公司工作,你可以有一個標誌,它指示是否就業依然活躍。然後在查詢中添加相應的where子句。

相關問題