簡體   English   中英

數據庫設計 - 幫助台應用程序

[英]Database design - Help desk application

我無法決定是否將幫助台應用程序保存在與企業應用程序的 rest 相同的數據庫中,或者將其完全分開。

幫助台應用程序可以通過電話、email、網站記錄支持請求。

我們也可以收到注冊客戶和非注冊客戶發送給我們的問題。

將幫助台應用程序保留在同一個數據庫中的唯一原因是我們可以共享用戶群。 但話又說回來,我們可以讓用戶創建一個新帳戶以獲得支持或將用戶帳戶與幫助台應用程序同步。

如果我們分離幫助台應用程序,我們的數據庫備份也會更小。 或者只是將幫助台應用程序保留在同一個數據庫中,這使得開發/集成總體上容易得多,也只備份 1 個數據庫。 (可能更大但仍然有 1 個數據庫)

你會怎么做?

我認為這是一個主觀的答案,但我會將幫助台系統保持為一個單獨的實體,除非有充分的商業理由使用相同的用戶群。

這主要基於我在專業幫助台呼叫記錄/票務軟件中看到的內容,但我確實有另一個令人信服的理由 - 安全性 - 邏輯如下:

通常,與其他業務系統(會計、購物、CRM 等)相比,幫助台票務系統通常需要較少敏感信息。 您的技術人員可能需要知道如何聯系客戶,但可能不需要存儲完整的地址、出生日期等。以下所有內容均基於假設 - 您現有的客戶數據包含敏感或個人身份數據您的票務系統不需要。

  • 原則一:通過限制存儲數據來減少攻擊面。 一般來說,我同意你應該只收集你絕對需要的數據的原則。 可用的敏感信息較少意味着攻擊者可以竊取的信息較少。

  • 原則 2:通過最大限度地減少對現有敏感數據的攻擊途徑來減少表面積。 假設您已經擁有龐大的用戶群,並假設您已經存儲了有關您的客戶的潛在有用數據,那么在該數據中添加另一個帶有鈎子的應用程序只是為現有客戶群增加了進一步的攻擊途徑。 這導致我...

  • 原則 3:最小特權。 您為幫助台軟件數據庫設置的用戶應該只能訪問幫助台分析師絕對需要的數據。 如果您在設計數據庫時考慮到一組特定的需求,那么實現這一點會更容易。 從維護的角度來看,必須為敏感數據設置視圖和存儲過程以便只允許訪問非敏感數據,這比設計一個只包含您需要的數據的數據庫要困難得多。

當然,我可能想多了。 走這兩條路還有其他令人信服的理由。 我只是想給你一些思考。

這肯定是基於您的環境的主觀答案。 您必須權衡一種選擇的利弊與另一種選擇的利弊。 但是,我的觀點是分離兩個數據庫會帶來最大的好處。 我真的不喜歡一個有兩個目的的數據庫。 相反,希望創建一個僅用於一個目的的數據庫。 以下是我看到的這樣做的好處:

  • 可移植性 - 如果您決定將幫助台移動到不同的服務器,您可以毫無問題。 如果您想將公司數據庫移動到其他地方,情況也是如此
  • 關注點分離——每個數據庫都是為自己的目的而設計的。 一個人的安全不會干擾另一個人的安全。
  • 備份策略 - 目前,您只能為兩個系統設置一個備份策略,因為它們位於同一個數據庫中。 如果拆分它們,您可以比另一個更頻繁地備份一個(並且備份會更小/更快)。

我看到的缺點(無法輕松訪問公司數據)實際上在我看來是積極的。 從公司數據庫訪問數據聽起來不錯,但它可能是一個安全問題(也是一個可維護性問題)。 相反,通過這種方式,您可以限制向幫助台系統授予的訪問權限(以及訪問類型)。 數據庫可以相當容易地相互訪問,因此不會那么不方便,並且它允許您在公司數據和幫助台數據之間添加一個很好的安全屏障。

暫無
暫無

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

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