1
我有一個表hardware_description
:Mysql觸發器或PHP中的編碼?
+------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+----------------+
| Computer_id | int(11) | NO | PRI | NULL | auto_increment |
| Emp_id | int(11) | NO | MUL | NULL | |
| PC_type | varchar(20) | YES | | NULL | |
| Operating_system | varchar(20) | YES | | NULL | |
| Product_key | varchar(30) | YES | | NULL | |
| Assign_date | date | YES | | NULL | |
| DVD_ROM | varchar(20) | YES | | NULL | |
| CPU | varchar(30) | YES | | NULL | |
| IP_address | varchar(30) | YES | | NULL | |
| MAC_address | varchar(30) | YES | | NULL | |
| Model_name | varchar(30) | YES | | NULL | |
| Model_number | varchar(30) | YES | | NULL | |
| Monitor | varchar(30) | YES | | NULL | |
| Processor | varchar(30) | YES | | NULL | |
| Product_name | varchar(30) | YES | | NULL | |
| RAM | varchar(20) | YES | | NULL | |
| Serial_number | varchar(30) | YES | | NULL | |
| Vendor_id | varchar(30) | YES | | NULL | |
Emp_id
是employees
表foreign key
。
當我更新某一行時,我希望將該行的現有數據保存在另一個表中,以及該update
動作的時間戳。現在,
a)應我使用PHP
代碼(PDO
transaction
)先抓住該行&插入另一個表中,然後在那個特定的行執行UPDATE
查詢?
b)在此表上使用trigger
。
哪個過程更好練&效率更高?是否有另一種方法來實現這一點?
我在目前爲止的短期職業生涯中還沒有使用過trigger
,但如果是更好的練習,我可以做到。
這要看您的具體情況和資源。觸發器是做這類事情的好方法,但它的確意味着,隨着程序的發展,你將不得不併行維護兩個系統。它可能或不可能是你想要做的事情;只有你知道。 – 2014-12-02 05:02:33