我讀過關於一個原則,聲明以下內容:「每個數據元素應該在數據庫架構中具有唯一的名稱。」(http://bytes.com/topic/sql-server/answers/439341-name關鍵字)你如何執行這個?如何強制我的數據庫模式中的每個數據元素都有唯一的名稱?
通常的技術是在列的有意義的名稱之前放置一個三字符的縮寫。因此,Employee.Name變爲Emp_Name。到現在爲止還挺好。但是,Employer.Name也應該成爲Emp_Name。所以,我必須爲僱主想出一些神祕的縮寫,這是毫無意義的。比方說,「Eml」。而且,隨着架構變得越來越大,越來越多的努力必須致力於避免碰撞。
在我看來,一個很好的折衷將始終使用合理的前綴。這樣,我們避免了大多數碰撞,而不使用不直觀的縮寫 - 比如僱主的「Eml」。
您可以採用一種策略,在創建它之前始終檢查具有建議名稱的實體是否已經存在 – paul
在風格上,我不同意兩個列不應該共享相同名稱的想法 - 它們可以很容易地通過在查詢中使用別名來消除歧義。我也認爲重複列內的表/實體名稱是多餘的,即dbo.Customer.CustomerId,dbo.Customer.CustomerName。爲什麼不只是Id和Name?只是我謙卑的意見壽! – Matt
是的,保羅,但政策需要付出很多努力,尤其是當有許多人在項目中工作時。政策不會防止不直觀的縮寫,如上面提到的「Eml」。 – Josep