嗯,我不太瞭解數據庫架構,但我真的不明白CTO的想法,但他堅持使用字符作爲 列的類型我們使用的所有表的主鍵。 但主鍵仍然像這樣 - > 1,2,3 ...等。它們是數字。 所以我使用整數+ auto_increment合成PK使用主鍵值字符「1」而不是int值1
但CTO說這是壞bc他不能發出查詢使用LIKE
條件上PK?!
- 對PK使用角色是否正常,特別是當你的PK是數字時?
- 在PK上使用類似條件是否正確?
PS - 因此而不是自動遞增/觸發器,序列CTO問題選擇查詢獲取 從表中最大的價值,他補充道1,然後他那個值轉換成字符串 然後將其存儲。
編輯
謝謝你的幫助!但我需要說服他,這將是一場災難。 我只被教過這個(在這種情況下,角色4 PK)是一個壞主意。 他的論點是...
1.角色PK不會佔用太多空間。
2.數據庫查詢優化器將不得不如果使用整型PK 重新閱讀您的查詢,因爲你會發出類似
"select * from employee where name like 'somename'
和
Select * from employee where id = 6
。
因爲where子句更改。
他強烈主張我們使用的是類似
"select * from employee where @columnName like @value"
他說這樣,查詢優化器會運行得更好。
我該如何證明或給他一些有效的理由來改變主意?
謝謝:)
首席技術官顯然是一個白癡! –
我同意米奇。雖然我會避免整個PK /代理 - PK參數,但是如果CTO希望對所有數值使用「LIKE」,爲什麼不只是設置具有適當索引的計算CHAR-ISH列呢? – 2013-01-07 03:08:11
當然。告訴她來這裏讀。他是個白癡。最有可能的是「我是政治型」的CTO,否則他們會在櫃檯做漢堡王的職業生涯 - 顯然,IT技能不是太明智。 – TomTom