我決定將三個值的組合設置爲我的數據庫表的主鍵(組合鍵)。前兩列的大部分時間是唯一的。但在少數情況下,它們都是同一時間,第三列的值對於該行將始終是唯一的。問題是第三列是描述,它是用戶可以輸入的任何字符串。我知道不建議讓用戶將字符串作爲主鍵。但它可以作爲組合鍵的一部分,我真的沒有其他選擇。找到正確的主鍵
Q
找到正確的主鍵
0
A
回答
1
如果可能的話,你應該添加一個代理主鍵,這意味着一個關鍵是唯一的,沒有任何商業意義。
複合主鍵往往不如預期的'穩定',但是如果你必須使用一個,那麼使用一個或多個用戶幾乎不控制或不控制的組件列(比如created_timestamp)會更可取。
+0
添加到morsor的答案:如果您需要主鍵的唯一性,您可以創建額外的索引作爲「唯一」 –
0
添加一個名爲id
的獨立列,並將其設置爲auto increment
並將此列用作primary key
。
希望這會解決您的問題。
乾杯。
相關問題
- 1. 子表的正確主鍵?
- 2. 主鍵的正確哈希函數
- 3. 如何刪除主鍵?我得到不正確的表定義
- 4. 找到正確的XPath
- 5. 找到正確的productID
- 6. 找到正確的baseaddress
- 7. perl的 - 設立條件,找到正確的鍵在哈希
- 8. 找到主鍵已知的表格
- 9. CakePHP的找到所有主列鍵
- 10. 爲什麼我的程序不能正確地找到主類?
- 11. 正確的模型關係,對cakephp2主鍵和外鍵查詢
- 12. 找到正確的方向爲正常
- 13. 查找無主鍵
- 14. 不正確的合併提交到主?
- 15. 要在ERD中獲得主鍵和外鍵正確
- 16. DBExpress:如何找到主鍵字段?
- 17. 查找關係的主鍵
- 18. 的語法不正確關鍵字 '到'
- 19. jQuery的找到正確的ID
- 20. JavaFX的找到正確的道路
- 21. PostgreSQL錯誤更新ResultSet「找不到表的主鍵」表w /鍵
- 22. 在Maven存儲庫中找到正確版本的正確JAR
- 23. 爲數據庫模型中的表設置正確的主鍵
- 24. 如何正確添加Liquibase的databasechangelog(PostgreSQL)的主鍵?
- 25. 在庫中找到正確的方法
- 26. 無法找到正確的JSON請求
- 27. 如何找到正確的Django文檔?
- 28. 找到正確的表數(硒IDE)
- 29. 代碼找不到正確的方差
- 30. 找到正確的php.ini文件
我假設不可能添加一個可以充當代理主鍵的新列? – morsor
如果沒有 - 也許使用時間戳作爲第三個組件比使用描述 – morsor
好哦..時間戳可能是好的。我會嘗試並回覆..感謝:) –