簡體   English   中英

CRM應用程序的數據庫表結構

[英]Database Table structure for CRM application

我正在基於PHP和MySQL的小型CRM應用程序上工作。 我正在遵循SaaS體系結構。 單一代碼庫和每個客戶端都有自己的數據庫。

  • 請記住,所有聯系信息都應從CSV導入。

  • 我的目標是允許客戶修改聯系表結構。 我的意思是每個客戶端都可以定義自己的表結構。

例:

  • 攝影行業的客戶喜歡收集以下客戶信息:

    名稱,地址,城市,州,國家/地區,電話,電子郵件,whatsapp

  • 鑒於SEO行業的另一個客戶ike收集了以下客戶信息:

    名,姓,地址,城市,州,國家/地區,電話,電子郵件,網站,skype

滿足所有需求的最佳表結構是什么?

希望我已經清楚地解釋了我的問題,如果您在理解我的問題時遇到任何困難,請發表評論,我會予以糾正。

允許客戶修改表結構提出了幾個挑戰,至少不是:如果他們想更改其結構以增加或減少新字段會發生什么? 您如何添加驗證碼? 以及更復雜的安全問題...

面向對象的數據庫將是實現此目標的一種好方法,但是您已指出MySQL是必需的,因此從體系結構的角度解決此問題的一種方法是擁有一張客戶特定模式表,其中客戶密鑰映射到特定客戶可以動態修改的表架構。

表單元數據和關聯的表操作可以存儲在數據庫中,以動態生成輸入字段以及所需的輸入字段。 由於應該不經常重新生成表模式,因此這沒有太多額外的開銷。

使用XML表示模式,我曾經通過實現基於存儲的模式生成SQL代碼和HTML表單的函數來實現類似的功能。 添加或更改字段時,應用程序會生成新的XML和相關的SQL,以通過XSLT修改表。

例如

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 .....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM