Update: I'm not looking for someone to come up with a schema for me. I guess I'm looking for input on whether some normalized DB design would work, when I can't clearly define all the relationships of the entities I'm working with, or if something more along the lines of a data warehouse would be something I wanted to look at further (realizing here I know enough about data warehouses to be dangerous - and that's about it.)
Ben küçük bir çağrı merkezi için bir raporlama süreci 'düzene' ile iş yerinde görevli oldum. Benim arka Çoğu web uygulaması olduğunu, ve kendime bir ara PHPer düşünecektim (kendi kendini yetiştirmiş, hiçbir üniversite - Ben çökmek için toplu gasp için saygı duruşuna alacağım). Yani bu biraz eğer benim norm farklı bir proje - hala bir web-tabanlı bir arayüz olması gerekir, bu yüzden en azından küçük bir ev gibi olsa.
Bu haliyle raporlama süreci elle Crystal Reports içine girilmesi gereken bir ACD sistemi raporlar basılmış alma içerir. Ayrıca, Kristal alınan çağrılar için çözünürlük oranı, vb bana verilen görev ayrıştırılması gerektiğini elektronik CSV dosyalarını yükleme izin gibi şeyler bulmak için bir bilet sistemi raporlar çalıştırmak için kullanılan, daha sonra bir veritabanına yüklenen . Bir keresinde veritabanına yüklenen, raporlar sadece (temelde) bir web sitesinde bir bağlantıyı tıklayarak tarafından oluşturulan ve e-postayla gerekir.
Ben genellikle var verilere bakarak, ve bu verileri modellemek için bir veritabanı kurarak projelerini başlar. Ben DB Rockstar değilim, bu yüzden veritabanları genellikle oldukça basit, ama ben kira 3NF at normalleştirmek için çalışın. Ben üzerinde hiçbir kontrolü bu verilerin bir sürü ilgili nasıl belirler, ve ben almak raporları bu ilişki dışında koklama için elverişli değildir var scripting beri - Bu proje ile olsa, ben hızlı güvenilir bir ilişki belirlemek zor olacağını gördüm . Yani internet üzerinde aramaya başladılar. Ben google eskittin. Ben SO üzerinde sorular ve cevaplar bir sürü okudum; birçoğu Ben bakmak için bakım daha onlara daha fazla kısaltmalar var.
Ben yardım için, sana gel, SO. Ne ben arıyorum en iyi ben kapalı çalışan ve veri ambarı (ayrıca, eğer öyleyse, ne okuma olmalıdır / hakkında biraz daha öğrenerek hizmet olacaktır eğer yeterli bilgi verdik varsayarsak, herkes bana söyleyebilir ) yapıyor, ya da güzel bir denormalized SQL veritabanı muhtemelen işe?
Veri 400 satır gününe girdi - - ve bu verilerin en basit IntS çoğu yaklaşık 300 olacağını aklınızda bulundurun. Bu çok küçük bir veritabanı.
Iş sadece raporları oluşturmak için kullanılan insan gücü miktarını azaltmak istiyor. Onlar raporları değiştirmek isteyen değil.
Ben geri almak comments / sorulara dayalı değilse, ben daha spesifik olmak için elimden geleni yapacağım, yeterli bilgi verdik umuyoruz.
Ben bir 3NF şema yapmanın yolda başladı, ve çeşitli tablolar ile sona erdi. Ajanlar için One (id, adı, e-posta, uzatma), Ajan Gruplar (id, grup adı) ve Uygulamaları (id, uygulama adı).
Ben Bir Uygulama çağrı aldığında, bu kriterlerden herhangi sayısına göre gruplara herhangi bir sayı gidebilir, ve ben bu bilgiyi (Ben kimse yok emin değilim) almanın bir yolu olduğunu fark edince onu biraz bozuldu. Yani tüm birlikte bu 3 şey ilişkilendirmek için bir ihtiyaç olmadığını düşünmeye başladım.
Aklınızda ile, 4 daha fazla tablo, AgentProfiles, AgentEvaluations, AgentGroupSummary ve ApplicationSummary olmak için oraya gidiyorduk. Bu tabloların her biri ben alıyorum raporunda verilere karşılık gelen bir sütunu olurdu. Ayrıca, bir uygulama geri işaret FK, Acente veya Ajan Group verilerine bu 'hat' ile ilişkili olacaktır.
Ben bu noktada panik başladı düşünüyorum ve ben devam etmek nasıl bu projenin bataklığına dışındaki insanların bazı giriş için arıyorum sanırım. Ben gelecek bakım bir kabus haline noktaya denormalize istemiyorum - Ben görünüyor sıkışmış; Oraya / tasarım altında ve uzun vadede kendimi vida olacak korkuyorum.
Edit:
I resisted the urge to go too much in-depth about the data I was working with for fear of creating a giant wall of text. I'll explain the data that I'll be getting, but the CSV files are so malformed I can't really provide an example of the reports I'll be getting. I can (and do, a little further down) provide an example of the data that would be going into the DB.
Temelde, ben olsun raporları bir çağrı analistin istatistiklerini ölçülerdir. Onlar raporlar vb bir çağrı, onlar konuşuyor süreyi, cevap onları ne kadar sürer, bir günde, bir saat almak kaç aramaları, her analist Ajan denir. Her Ajan Ajan Grubuna ait ve her Ajan Grup Uygulama ile ilişkilidir.
Ben DB içine veri var, ben bir günlük bazda, yönetime ihraç edilebilir güzel raporlar yapmak gerekir, ve de ajanlar edeceğiz.
Bir Ajan Profili raporu ve bir Ajan Değerlendirme raporu - 2 Ajanlar ile özel anlaşma raporlar vardır. Ben raporlardan biri örnekler vereceğim. Raporların kalan yazarak 40 dakika olmadan metnin içine damıtılmış olmanın tam elverişli değildir.
AGNTNAME,07:18:56,03:29:36,26,265,74,0,339,11
- Agent Evaluation Report
- Ajan adı
- Bir ajan onların telefon için imzalandı (SS: SS: DD) süresinin uzunluğu
- Sürenin uzunluğu (MM: SS SS) bir ajan çağrı almaya hazır olduğunu
- Onlar aldı Kaç aramalar (INT)
- Then there are several calculated averages, these are calculated by whatever generates the reports. Unless otherwise noted, these are integers expressing a total time in seconds (think 180 vs 00:03:00)
- konuşma süresi (zaman bir çağrı bir ajan bağlantısını kesmeden başlar)
- çalışma süresi (zaman kullanılabilir kadar tekrar aramaları almak için, bir çağrı aldıktan sonra kullanılamaz geçirdi)
- zaman tutun (zamanı arayan bir özel madde ile beklemeye oldu)
- kullanım süresi (konuşma süresi + çalışma süresi)
- Saatte aramalar (bu öyle bir ajan ben formül bu numarayı almak için kullanılır nedir emin değilim onlar içeri günlüğe zamanın miktarı karşı alır aramaların miktarına göre çıkarım oluyor, yani bir hayali # olan)
Ajan Profili Raporu aşağı dönemlerde ayrı oturum içine ajanlar bir gün keser. Herzaman bir ajan kullanılamaz hale, yeni bir oturum açma süresi ancak daha fazla analitik puan ölçmek daha fazla alanlar ile, Ajan Değerlendirme Raporuna benzer şekilde yapılandırılmış yeni bir veri hattı ile birlikte oluşturulur. Bunların çoğu ortalamaları, ya da (onlar gerçek sayıların gerçek ortalamaları değil, hesaplanan sayı ortalamaları bazı gizli-sos ölçüte göre anlam) üretilmektedir ortalamalar bulunmaktadır.
Ajanlar beceri dayalı mantıksal alt kümeleri içine de grup, bu Ajan Gruplar denir. Her Danışman Grup 1 veya daha fazla Uygulamalar aittir. Sen (; vb "Microsoft Office yardım için basın 2", "şifre sıfırlar için 1 basın") bir çağrı kuyruk gibi bir uygulama düşünebilirsiniz. Ancak, her uygulama bir çağrı bir uygulama ile ilişkili kadar 10 Ajan Gruplarına yönlendirilmesini nasıl belirleyen bir komut dosyası vardır.
Hiçbir şey "X çağrı çünkü kriterler Z Danışman Grup Y gönderilirdi" bana söyler raporlarında var çünkü ilişkileri belirleyen, kıllı alır yerdir. Yani güvenilir bir şekilde birlikte ilişkilendirmek zor 3 nesneler ile sonuna kadar.
- Ajanlar
- Ajan Gruplar
- Uygulamalar
An Agent belongs to 1 or more Ajan Gruplar. An Agent belongs to 0 Uygulamalar (directly - they get associated through Ajan Gruplar).
An Agent Group can have 1 or more Ajanlar. An Agent Group belongs to 1 or more Uygulamalar.
An Application has between 1 and 10 Ajan Gruplar. An Application has 0 Ajanlar (again, directly).
Ben tarihsel verileri tutmak için gerekli olacak, çünkü ben artık mevcut maddeler için istatistikleri ayıklamak için bir yol gerekir, bu yüzden varolmayan e-posta adreslerine e-posta istatistikleri değilim.
İlave bilgi yardımcı olur umarım.