建模:標識欄位 - Dan
本文的目標是研究一種特定型別的欄位 —記錄業務識別符號。其目的是唯一標識一個記錄的例項。資訊系統的使用者應該瞭解或訪問該值。該值用於啟動或停留在處理它標識的特定記錄例項的任何業務流程的“快樂路徑”上。
注意:記錄業務識別符號的概念與概念主鍵類似,但並不完全相同。關聯式資料庫中的每個表都應該有一個主鍵。但是,主鍵可以涉及組合多個列以實現唯一性。此外,關聯式資料庫中的每個表都應該有一個主鍵,但只有一些表表示儲存作為業務流程起點的資料。
識別碼和數字
記錄商業識別符號就在我們身邊。我們的錢包和手機裡裝滿了它們--那些被我們打交道的組織所暴露出來的值。如果你看到一個以 "ID "或 "Number "結尾的欄位名,很有可能它的值是用來識別該記錄的一個特定例項,或者是某個地方的例項。我們的假設是,在與產生該值的組織進行互動時,我們會有該值可用。這些價值壓印在我們的信用卡和借記卡上。它們印在我們的會員卡上,我們的折扣卡上,我們的駕駛執照上。我們記錄的每一個電話號碼、電子郵件地址和應用程式的具體聯絡人都是一個記錄的商業標識值。當我們想 "接觸 "一個特定的人或與髮卡機構互動時,我們就會使用這些值。
從資訊系統的角度來看,毫無疑問,給定足夠的欄位,如姓名、地址、電話等,我們可以唯一地識別代表一個人或組織的記錄例項。同樣地,有一些關於產品、銷售或地點的欄位,結合起來就能引導我們找到我們要找的例項。記錄業務識別符號的意義在於它是一個 "一站式服務"--一個單一的值,如果知道的話,將使使用者在特定的時間點上找到他們正在尋找的具體例項。
多因素識別器
記錄業務識別符號的最簡單形式是基於數字序列的識別符號(例如,最後分配的數字加1)。這種形式經常被用於只需要在組織內的值是唯一的,而且不需要識別符號有任何意義的地方。對許多組織來說,諸如採購訂單、商店和資產等記錄就屬於這種型別。
一個至少包含一個事實的識別符號的例子是CREDIT CARD號碼。在持卡人看來,它只是一個數字。但是,由於這個數字在所有發行類似卡片的組織中需要是唯一的,每個數值的前六位都是識別髮卡組織的。這六個數字之後的數字可以由某一組織選擇的任何方式產生。通常情況下,這些數字中的六位或更多的數字是根據 "最後分配的值加一 "的演算法來填充的。
欄位Stock Keeping Unit Number (SKU)是一個識別符號的例子,它利用多個事實來構成INVENTORY ITEM記錄的唯一值。一個零售服裝企業可能會根據商品的品牌、服裝型別、樣式、尺寸和顏色的組合來建立其獨特的SKU。例如,SKU號碼'LEV-JN-ST-34-BL'代表庫存商品Levi牛仔褲,直筒褲,腰圍34號,藍色。
當一條記錄的業務識別符號包含一個或多個事實時,這些事實也應該被定義為同一條或其他一些記錄中的獨立欄位。這就消除了業務使用者 "拆開 "識別符號來尋找某個事實的需要。例如:獲得一個腰圍為34英寸的所有牛仔褲的列表。
注意:任何包含在記錄業務識別符號中的事實,最好是涉及不會隨時間變化的值。在將識別符號 "暴露 "給企業後,處理溝通一個變化對任何人來說都是沒有成效的。如果你曾經改變過你的電話號碼或電子郵件地址,並需要通知家人和朋友,你會對由此產生的努力和不便有一些體會。
優化訪問記錄例項的使用者體驗
當一個業務流程需要涉及一個特定的記錄例項時,牢記以下四點將有助於優化使用者體驗。
- 最大限度地提高識別符號的曝光率
- 最大限度地減少識別符號的手動輸入
- 避免找到一個錯誤的例項
- 提供備用的 "查詢 "選項
最大化識別符號的暴露--當一條記錄包括一個記錄業務識別符號欄位時,該值應該被 "暴露 "在最適合處理單一例項的業務流程中。一個EMPLOYEE號碼可以顯示在員工的ID徽章上,並列印在員工的工資單上。一個資產識別碼可以列印在每個實物資產的標籤上。一個有製造商註冊的產品條碼值的零售產品,應該在該產品的每個例項上列印該條碼和它的數字字元。
儘量減少識別器的手工輸入 - 如今,越來越多的資訊系統被資料採集技術、網路門戶和應用程式 "前置 "了。輸入裝置可以讀取條形碼、磁條、嵌入式晶片,或通過無線電頻率(RFID)廣播的數值。自助服務也是一種趨勢,客戶使用網路門戶或應用程式連線到資訊系統。使用者登入標識是一個記錄業務識別符號的例子--由於網路瀏覽器或移動裝置能夠記住特定網站或應用程式的登入標識值,因此需要最小的資料輸入工作量。
避免找到一個錯誤的例項--在技術無法提供所需的數值,而使用者需要藉助於手動輸入數值來訪問特定的例項的情況下,最常見的資料輸入錯誤之一是移位一個或多個數字。這可能導致找到一個有效的記錄例項,但不是想要的那個。例如,想要識別值為12345的例項,但不小心輸入了12354的值。避免這類錯誤的技術是在生成識別符號值時包含一個校驗位。信用卡號碼就是一個包含校驗數字的例子,以避免發現錯誤的記錄例項。
提供後備的 "查詢 "選項--對於每個滿意的路徑,都有任何數量的替代或例外路徑。這些路徑中至少有一條應該涉及到使用者介面的功能,支援使用者在 "過濾 "記錄列表的幫助下找到所需的記錄例項,顯示足夠的記錄欄位,提供足夠的資訊來發現所需的例項。
記錄業務識別符號中包含的欄位
捕獲一條記錄的業務需求的一個重要部分是確定該記錄中的一個或多個欄位,它們共同構成了其記錄的業務識別符號。如果一個單一的非數字欄位是用來做這個工作的,那麼這個欄位需要用業務友好的、有意義的名稱值來填充。如果多個 "業務事實 "是為了在 "快樂路徑 "的業務流程中組合使用以找到一個例項,那麼這些事實中的每一個都應該被定義為一個單獨的欄位,並被 "標記 "為構成該記錄的業務識別符號。
相關文章
- 使用OGG新增唯一標識欄位到目標表
- SQLServer中如何刪除欄位的自增標識SQLServer
- Camstar MDB setfieldex 修改建模欄位不記錄Audit TrailAI
- Redigo: ScanStruct()匿名指標欄位的解析GoStruct指標
- php去掉欄位文字的所有html標籤PHPHTML
- pydantic 欄位欄位校驗
- odoo學習5-模型欄位知識Odoo模型
- fastadmin 新增欄位記圖片欄位AST
- c++ string 識別標誌位並解析標誌位後面的字元C++字元
- 如何定製化Fiori標準應用裡UI欄位的標籤UI
- postgresql中資料表如何透過一個欄位標識資料行多種狀態?SQL
- DAN Text Classification
- [BUG反饋]模型管理 > 欄位管理看不見任何欄位。這表明顯有欄位、!模型
- sql語句修改欄位型別和增加欄位SQL型別
- 【Mongo】mongo更新欄位為另一欄位的值Go
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- 新建模型的時候,是否顯示欄位中的條件顯示如何使用?模型
- 欄位排除功能
- 模型追加欄位模型
- 表單欄位
- dcat欄位擴充套件:地圖拖拽設定xy座標套件地圖
- 快速將下劃線欄位改為駝峰欄位
- arcgis欄位值計算(擷取A欄位前8位+按照順序計算8位)
- MySQL欄位新增註釋,但不改變欄位的型別MySql型別
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- 將多個JSON欄位對映到單個Java欄位JSONJava
- 通用首部欄位詳解-四大首部欄位之一
- 易優field獲取channelartlist標籤的欄位值-EyouCms手冊
- SAP ABAP 標準表和其欄位的命名規則講解
- MySQL 欄位約束MySql
- 多欄位登入
- [BUG反饋]模型增加欄位後field_sort欄位未更新模型
- 請求首部欄位詳解-四大首部欄位之一
- SAP MIGO 報錯-在例程WERT_SIMULIEREN欄位NEUER_PREIS中欄位溢位-Go
- Qt隱藏系統標題欄,使用自定義標題欄QT
- 更新欄位時更新時間不自動更新(不更新 updated_at 欄位)
- [Elasticsearch] 多欄位搜尋 (二) - 最佳欄位查詢及其調優(轉)Elasticsearch
- C語言結構聯合位欄位知識體系總結大學霸IT達人C語言