# 屬性管理

在正式介紹 **屬性管理**<span style="color: #444444;"> 之前，我們需要先理解：何謂屬性、屬性的應用對象、屬性的型態。</span>

- ##### 何謂屬性
    
    **屬性是特定對象共同具有的特質或性質**，且這些特質在這些對象之間呈現的結果不一定會完全相同。  
      
    像是每個人都具有眼睛且眼睛顏色因人而異不會完全相同，身高、體重、膚色、頭髮長度也是相同的道理，而這些就是身為人共同具有的特質，所以我們可以說每個人都具有眼睛顏色、身高、體重...等等的屬性。  
      
    基於這個概念，GOSU BAR 可以根據不同的需求建立適合的屬性，並運用這些屬性來記錄、管理特定的資訊與資料。

釐清屬性的概念後，接著需要理解 GOSU BAR 屬性的應用對象種類，了解其作用對象的差異以及各自適合使用的情境。

- ##### 屬性的應用對象（好友／機器人／組織）
    
    在 GOSU BAR 平台上屬性共分成 3 種應用對象：**好友、機器人、組織**。 **※** 以層級來說：組織＞機器人＞好友，組織位於最上層（最外），好友位於最下層（最內）。
    
    **※** 建立在合適的應用對象，有助於管理上的簡化，功能執行的效能、效率也會獲得優化。
    
      
    
    - **好友**  
        多數情境下屬性的應用對象會選擇好友，因為常見的需求是直接記錄使用者本身的資訊比較多。  
        例如：身高、體重、電話、住址、身分ID，這些都是屬於用戶自己的資訊。  
          
        **※** 註：假設建立了電話、住址、身分ID 這三個應用對象為好友的屬性，在同一個組織中無論所屬機器人為何，組織中的所有好友都將具有這三個屬性。
    - **機器人**  
        部分情境下會需要使用應用對象為機器人的屬性，當屬性的資訊內容不屬於用戶個人，或是該屬性代表的是共有的資訊、資料，那麼屬性的應用對象就會選擇機器人。  
          
        情境：  
        今天要透過聊天機器人舉辦一個限時活動，當活動開始用戶可以觸發活動的功能，當活動尚未開始或是結束，活動功能就必須鎖定不開放使用，並且回應用戶活動尚未開放等訊息。  
          
        要達到這個需求有很多方法，其中一種是透過屬性來設定 開始時間 與 結束時間，並根據這兩個時間判斷活動是否已經開始或結束。  
          
        這時候出現一個問題，這兩個屬性的應用對象應該選擇 好友 還是 機器人？既然在這裡提出問題，答案顯而易見是建立在機器人。  
          
        會這麼選擇是因為一個活動的 開始時間 與 結束時間 對所有用戶來說都是相同的，它是一個共同、共有的資訊，不會因為不同的用戶而有不同的活動時間。  
          
        此情境下將屬性建立在機器人，將有助於資料管理上的簡化，如果活動時間需要更改只需要改一次機器人的屬性，如果屬性建立在好友就需要對每一個用戶的屬性都個別設定，這不但費時也增加許多沒必要的操作，並且無意義的增加用戶個人的屬性資料造成浪費。
    - **組織**  
        若能理解機器人的說明，那麼建立在組織就不難理解。由於組織的層級比機器人再高一層，所以會將屬性建立在組織的情境，就是當組織之下的所有機器人都需要共用某個屬性，那就會選擇將屬性建立到組織，而非建立到機器人。

無論屬性是建立在哪個應用對象，屬性都有 3 種型態可以選擇。建議依使用情境選擇適當的型態，這將有效優化一些操作，甚至提升運行的效能。

- ##### 屬性的型態（文字／數字／列表）
    
    在 GOSU BAR 平台上屬性共分成 3 種型態：**文字、數字、列表**。  
      
    
    - **文字** 顧名思義，就是專門用來儲存文字的型態。  
        例如：姓名、生日、身分ID，這些只需要被記錄而不用進行數字運算的資料，就會使用文字型態的屬性來記錄。
    - **數字** 專門用來儲存數字的型態。  
        此種型態在流程編輯器中的 設定屬性節點 將會出現對此種屬性的內容（值）進行數字 加N 或 減N 的操作可選擇。  
        **※** N為一個數字。
    - **列表** 可以當作是一個可以依序塞入不同內容的文件夾，文件夾中每一個內容彼此之間都會透過逗號區隔。  
        若以程式撰寫來理解，列表其實就是陣列，所以能做的操作也相同，在流程編輯器中的部分操作可以直接對該屬性進行陣列的相關操作。
- ##### 屬性管理
    
    理解何謂屬性、屬性的應用對象、屬性的型態後，就來看看屬性管理的介面吧！  
      
    
    - **介面**   
        [![0-整體介面.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/awgbfxnpcMtZWpnp-0-%E6%95%B4%E9%AB%94%E4%BB%8B%E9%9D%A2.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/awgbfxnpcMtZWpnp-0-%E6%95%B4%E9%AB%94%E4%BB%8B%E9%9D%A2.png)  
        初始狀態就已經包含了一些預設的屬性。  
        **※** 部分屬性顯示上鎖，這是因為這些屬性包含了不可變更且必要的資料內容。  
          
          
          
        [![1-新增屬性按鈕.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/c8snYTMW6TkVG90W-1-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E6%8C%89%E9%88%95.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/c8snYTMW6TkVG90W-1-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E6%8C%89%E9%88%95.png)  
        紅色框選處代表的是 新增屬性 的按鈕。  
        記得前面提到的，建立屬性之前請根據使用情境選擇適合的應用對象唷！  
          
          
          
        [![3-新增屬性設定.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/PCNOKkKS8npWplkW-3-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/PCNOKkKS8npWplkW-3-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A.png)  
        點選 新增屬性 後會進來此介面。  
          
          
          
        [![4-新增屬性設定-更改建立的應用對象.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/DhLLfM925qLZHkPM-4-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E6%9B%B4%E6%94%B9%E5%BB%BA%E7%AB%8B%E7%9A%84%E6%87%89%E7%94%A8%E5%B0%8D%E8%B1%A1.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/DhLLfM925qLZHkPM-4-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E6%9B%B4%E6%94%B9%E5%BB%BA%E7%AB%8B%E7%9A%84%E6%87%89%E7%94%A8%E5%B0%8D%E8%B1%A1.png)  
        如果想要更改 應用對象 在這裡可以重新選擇。  
          
          
          
        [![5-新增屬性設定-設定屬性的中文名稱與英文名稱.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/iUbB8QQVTgftFIxf-5-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E8%A8%AD%E5%AE%9A%E5%B1%AC%E6%80%A7%E7%9A%84%E4%B8%AD%E6%96%87%E5%90%8D%E7%A8%B1%E8%88%87%E8%8B%B1%E6%96%87%E5%90%8D%E7%A8%B1.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/iUbB8QQVTgftFIxf-5-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E8%A8%AD%E5%AE%9A%E5%B1%AC%E6%80%A7%E7%9A%84%E4%B8%AD%E6%96%87%E5%90%8D%E7%A8%B1%E8%88%87%E8%8B%B1%E6%96%87%E5%90%8D%E7%A8%B1.png)  
        建立屬性需要給予中文以及英文名稱。  
          
        中文名稱主要目的是讓管理者容易理解屬性記錄何種資訊，因此命名建議要清楚易理解，避免日後忘記屬性的存在意義以及影響範圍。  
          
        英文名稱除了命名要清楚明瞭，長度也建議簡短，因為往後在流程編輯器使用到屬性會是以英文命名來進行相關操作，英文過長或命名涵義不明確，容易造成未來閱讀與維護上的困難。  
          
          
          
        [![6-新增屬性設定-設定屬性的型態.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/NPNnCnZ4uZo2qpfM-6-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E8%A8%AD%E5%AE%9A%E5%B1%AC%E6%80%A7%E7%9A%84%E5%9E%8B%E6%85%8B.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/NPNnCnZ4uZo2qpfM-6-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E8%A8%AD%E5%AE%9A%E5%B1%AC%E6%80%A7%E7%9A%84%E5%9E%8B%E6%85%8B.png)  
        請根據使用情境以及存放資料的類型選擇適合的屬性型態。  
        **※** 屬性型態若往後有更改種類，該屬性現有儲存的資料可能會遺失，因此請謹慎評估是否要進行型態的更動。  
          
          
          
        [![7-新增屬性設定-顯示位置設定.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/ksLJl8e4cN2ZQ8mC-7-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E9%A1%AF%E7%A4%BA%E4%BD%8D%E7%BD%AE%E8%A8%AD%E5%AE%9A.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/ksLJl8e4cN2ZQ8mC-7-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E9%A1%AF%E7%A4%BA%E4%BD%8D%E7%BD%AE%E8%A8%AD%E5%AE%9A.png)  
        設定該屬性在後台管理介面中是否顯示或隱藏。  
          
        舉例：如果只關閉 **顯示於列表**，管理介面中的好友清單列表不會顯示這個屬性欄位，但點選用戶進入詳細資料介面會顯示該屬性欄位；反之，若只關閉 **顯示詳細資料** 情況則相反。  
          
          
        [![8-新增屬性設定-屬性排序順序調整.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/Ssn6RThg3npGTCA3-8-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E5%B1%AC%E6%80%A7%E6%8E%92%E5%BA%8F%E9%A0%86%E5%BA%8F%E8%AA%BF%E6%95%B4.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/Ssn6RThg3npGTCA3-8-%E6%96%B0%E5%A2%9E%E5%B1%AC%E6%80%A7%E8%A8%AD%E5%AE%9A-%E5%B1%AC%E6%80%A7%E6%8E%92%E5%BA%8F%E9%A0%86%E5%BA%8F%E8%AA%BF%E6%95%B4.png)  
        可以對屬性進行排序調整，方便日後尋找。  
          
          
          
        [![2-關鍵字搜尋屬性.png](http://book.gosu.bar/uploads/images/gallery/2020-02/scaled-1680-/t54Qh9dlKDj6gF2h-2-%E9%97%9C%E9%8D%B5%E5%AD%97%E6%90%9C%E5%B0%8B%E5%B1%AC%E6%80%A7.png)](http://book.gosu.bar/uploads/images/gallery/2020-02/t54Qh9dlKDj6gF2h-2-%E9%97%9C%E9%8D%B5%E5%AD%97%E6%90%9C%E5%B0%8B%E5%B1%AC%E6%80%A7.png)  
        若屬性的總數相當龐大可能會很難尋找，這時候可以透過關鍵字搜尋找出在尋找的屬性。