允許客戶端修改表結構會帶來幾個挑戰,而不是最起碼的是:如果他們想要改變它們的結構來增加或減少新的字段會發生什麼?你如何添加驗證碼?以及更復雜的安全問題......
一個面向對象的數據庫將是一個很好的實現方法,但你 已經表明MySQL是一個需求,所以從體系結構的角度來看這個方法是具有客戶特定模式的表格,客戶鍵映射到可以動態修改的特定表格模式。
表單元數據和關聯的表操作可以存儲在數據庫中,以動態生成輸入字段以及所需的輸入字段。由於表模式應該不經常重新生成,因此這不會產生額外的額外開銷。
使用XML來表示模式,我曾經通過實現基於存儲的 模式生成SQL代碼和HTML表單的函數來實現類似這樣的事情。當添加或更改字段時,應用程序會生成新的XML和關聯的SQL,以便通過XSLT修改表。
E.G.
Schema DBtoSchema(Database)
DataBase SchematoDB(XML_Schema)
Schema DBTabletoSchema(Table)
DBTable SchemaToDBTable(XML_Schema)
SuccessCode SchemaAddField(XML_Schema, FieldName, FieldType, FieldValidation)
SuccessCode SchemaDeleteField(XML_Schema, FieldName)
SuccessCode NewTable(Schema)
SQLCode GenerateInsertSQL(Schema)
SQLCode GenerateDeleteSQL(Schema)
HTMLCode GenerateForm(Schema, xsltCode)
... and so on .....
這意味着用戶可以添加/刪除給定模塊的自定義字段的自定義字段。有很多開源的crm應用程序寫在php和mysql上,比如'vtiger crm,sugar crm'等等,我正在使用'sqcrm.com',你可以查看更多。 –
@AbhikChakraborty謝謝你的建議,但我嘗試了一些不同的東西,所以我想從頭開始構建它。 –
這些查詢的外觀如何? –