[英]How to create dynamic field for a database using PHP
我有一個編寫的多客戶端級別的PHP應用程序。 像任何其他PHP應用程序一樣,此應用程序具有許多數據庫對象。 但是由於它是一個多客戶端級別的應用程序,所以每次我們聘用新客戶端時,我都有不同的客戶端要求。 有幾個共同的對象(又名帳戶)托管着大多數客戶信息。 但最重要的是,每次我想向數據庫中添加新客戶端時,此新客戶端都需要在已添加的帳戶數據庫中添加新列,因為它們將具有一些唯一數據。 有標准的必填數據(即account_name,status ...),但是某些數據是唯一的,並且根據客戶業務類型而被標記為不同。
目前,我要做的就是滿足要求
編輯我在其中顯示帳戶信息並顯示字段內容的PHP腳本,如下所示
if(!empty($ row ['new_filed']))echo'單個客戶端必填字段:'。 $行[ 'new_filed'];
如果該字段是可編輯的,那么在保存之前,我必須向編輯/添加表單中添加規則以進行數據驗證檢查。
我正在嘗試構建一個前端工具,該工具將自動為我執行此操作。 這樣,我可以讓管理員“不是程序員”使用前端工具並添加一個新字段,該字段將顯示在所選頁面的所選部分中。
在前端工具中,我想說的是添加一個名為“ brand_c”的自定義字段,並使其類型為varchar(100)。 然后,僅在客戶端=“ XYZ”的情況下,在“其他”部分中名為“ account_info.php”的頁面上才顯示帶有標簽“品牌”的字段,因此,如果數據屬於客戶端“ ABC”,則不會顯示數據,因為此列僅針對“ XYZ”自定義。
我知道這是一個廣泛的問題,但是我正在尋找的是如何構建這樣的東西的幫助(從何而來?)。 這是大多數大型CRM所做的事情(即Microsoft CRM Dynamic,Salesforce.com ...)。我該如何構建類似的東西?
謝謝
您需要做的第一步是正確設計表,因此基本上您需要知道如何設計表以支持動態字段,並且該字段將能夠驗證/處理此類數據。
我對應用程序(可在應用程序的admin中配置UI字段的動態應用程序)所做的工作是將配置保存在數據庫中,每次發生事務時,頁面將獲取所選記帳器的配置,並將生成必填字段。 提交表單后,應用程序將再次獲取配置並根據client_field中的設置進行驗證
帳戶表*包含帳戶等信息
客戶表
您可以根據需要為客戶端添加不同的列,但請確保不要在此表中添加必需的UI字段,而是創建如下表
client_field表//將包含可以定義/配置的表
您可以添加其他列,但是您需要確保它是流暢的而不是多余的。
假設您有field_type下拉列表,需要創建另一個表,讓我們稱之為
field_dropdown
您可能想知道在這種情況下如何保存數據,數據必須保存在另一個表中,讓我們稱之為
client_information
這樣,當您保存新客戶端時,client_field中的每個字段都會在client_information表中添加新行以及用戶插入的值
設計此類應用程序時面臨的挑戰是:
該設計的優點是:
我並不是說這是必須做的,但這是我對如何開發需要動態數據字段的應用程序的建議,到目前為止,根據我的開發經驗,只要設計和開發良好,它就可以很好地工作。
您可以創建一個新表(例如extra_data
,而不是將其他字段作為新列添加到accounts表中,例如,使用account_id
, data_label
和data_content
列。 這樣,您可以將每個帳戶的額外數據保存到該表中,然后在account_info.php中進行獲取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.