我在我的數據庫中有一個存儲日誌的表。日誌文件時間戳與第二精度和存儲各種傳感器的值和它們的來源:PostgreSQL bytea主鍵
log_id, log_date, primary_system_source, sub_system_source, values
凡LOG_ID,primary_source和sub_source是整數,並且值是一個可變長度的字節數組(數據類型:BYTEA)。
在大多數情況下LOG_ID,LOG_DATE,primary_system_source和sub_system_source場的組合就足夠了作爲主鍵。不幸的是,由於在某些行中解決了日誌記錄系統中的時間戳,所以區分行的唯一因素是傳感器值也添加到主鍵。
看來我有不具有主鍵(壞?),幷包括在主鍵的值字段之間的選擇。我對第二選擇感到擔憂,因爲我知道它可能會嚴重影響性能(表格將有數以百萬計的行)。
任何提示哪個是最好的解決方案?
任何你不能使用自動遞增主鍵的原因? (postgres lingo中的一個序列) – nos 2010-02-23 14:45:28
我可以,但一個愚蠢的用戶可能會來,並嘗試兩次導入相同的日誌。使用序列,數據庫會高興地重新導入日誌,給它新的ID。使用主鍵將防止重複導入的相同日誌(並提供比僅匹配文件名更多的保護)。 – James 2010-02-23 15:32:50