2017-09-27 177 views
0

我有customer_info表在卡桑德拉。它將具有以下列。卡桑德拉數據建模的計算

  1. UUID是主鍵。
  2. CUSTOMER_ID
  3. 等領域......期間365天

$ 100交易上限爲每一位客戶。

我有以下2個選項

  1. 從客戶表中選擇的特定customer_id所有記錄。在應用程序代碼中進行內存計算;如果交易限制不超過100 $,則在customer_info表中進行插入或更新。

  2. 維護一個新表customer_limit,它將由customer_idlimit領域。在對customer_info進行CRUD操作之前,我會查詢customer_limit表中的知道限制,並根據限制做customer_info表上的CRUD操作。

在維護和更快的讀寫方面,哪個選項最適合?

+0

第一:如果您的主鍵只有UUID,您將如何查詢* customer_id *? – xmas79

+0

我忘了提及關於「customer_id」的索引 –

回答

0

我會爲此使用2個表格。

table-2將是一個櫃檯表,其中limit作爲櫃檯值。在插入customer_info表之前,您應始終查詢此table-2

請參閱Counters這裏。它們很容易使併發增量避免在應用程序源代碼中寫入之前讀取。

另請閱讀關於Partion和Clustering的關鍵概念。您選擇customer_info的鑰匙不太好。

0

我認爲您必須保留每筆交易的細節,因爲您需要在每筆交易中「提前」的固定光圈(365天)的「移動」窗口。

您可以創建一個transactions表如下主鍵字段對:

(customer_id, transaction_date) 

通過聚類在DESC爲了這個表(按課程的日期),那麼你可以隨時查詢最近365天,有效地, 每天。