2016-09-14 83 views
1

這一個哲學問題的位:處理傳入的數據與別名

我們處理大量的數據,通過不同的渠道進來。 我們正在分析這些數據以試圖理解它。

例如

class Product 
attr_accessible :name, :description, :price 
has_one :company 
end 

class Company 
attr_accessible :name, :domain, :phone, :email 
validates_uniqueness_of :name, :domain 

end 

當數據進來的公司名稱可以有所不同。

例如

"Acme Limited" 
"Acme Ltd" 
"Acme Ltd (Birmingham)" 
"Acme Ltd (London)" 

這些都是基本相同的公司,我們希望將它們存儲本身和自動分配它們(一旦我們確定了一個別名)。

這些變化取決於第三方將數據存儲在其API或我們無法控制的網站上的方式。

什麼是識別這些別名,然後在他們到達時將其轉換爲合適的公司的好方法?

我想過把另一個類作爲關聯添加到處理別名的公司。 或者,在表中添加一個jsonb列,我們可以保存一個別名數組,以便如果有任何匹配,我們可以將它們帶入。

只是好像應該有一個很好的解決方案,我不是發現。

任何人遇到這種類型的問題,並拿出一些優雅和美麗的東西?

+0

'將jsonb列添加到表格中'對我來說聽起來不錯 –

回答

0

我會介紹另一個模型,比如說Alias,其中引用Company,基本上有兩列,company_idalias。然後可以調用company.aliases來檢索別名列表。

這樣就會很容易/快,當你從什麼地方得到一個別名名稱查找公司:

Alias.find_by_alias(value_got_from_3rd_party).try(:company) 

顯然,應該有aliases表真名的記錄,以及用於查找工作順利。