我強烈推回要求,讓他們知道這是一個非常糟糕的主意。是的,你可以爲這些表添加一個EAV表,但是你有問題,查詢它既不簡單也不表現。或者,您可以像@Jerry Coffin所建議的那樣,使用六張備用欄目的表格,但他會導致報告困難,並且在他們全部使用它們時會發生什麼情況。所有這些都導致開發人員進行大量額外的工作,以支持一年內可能不會導致3次數據庫更改的要求。您冒着數據完整性,數據庫性能和報告準確性的風險(我敢打賭,這些新字段不會有PK/FK關係或默認值,或者甚至是正確的數據類型,因此日期是變化的,因此數據將被添加到數據庫中的會費日期是ASAP,不適用於報告),以及所有不知道他們在做什麼的人都可以假裝進行數據庫更改,這些數據庫更改效率低下,思路不清。
我已經與許多COTS產品合作過,當人們實際添加列時(實際上很少有人足夠勇敢地這樣做)。他們沒有按照他們需要的形式出現,他們也不會自動添加到報告中,他們通常無法搜索,並且在每種情況下,他們最終花費更多的錢去解決他們製作的數據混亂問題讓專業人員進行設計更改會有成本。
大多數時候,當我看到這樣的要求時,高級管理人員認爲靈活性很酷,而不是任何高級用戶實際需要甚至想要這樣做。他們需要意識到他們所要求的成本。
花費更多的時間和額外的幾天與高級用戶談論他們需要的東西並獲得設計開始的權利,而不是走下這條路。
這是真正需要長時間嚴肅討論的要求之一,它不僅需要開發時間花費多少,而且數據完整性和性能以及可維護性幾乎沒有增益。我會做一個正式的成本效益分析,以向他們展示這個想法到底有多糟糕。然後,一旦他們完全沉浸於他們所要求的完全愚蠢的行爲,如果他們仍然需要它,繼續建設並開始尋找新的工作,因爲你不想成爲一個必須維護的人這個。
你使用`sql server`鎖定了嗎?也許像`mongodb`這樣的無模式數據庫更適合您的問題。 – Chris 2011-01-27 22:46:04
*最好的辦法*做到這一點? **不!** – 2011-01-28 05:48:32