Masaüstü bilgisayarlar, dizüstü bilgisayarlar, anahtarlar, yönlendiriciler, cep telefonları vb.Gibi BT donanımlarını depolayan bir envanter veritabanı oluşturuyorum. Tüm cihazların tek bir tabloda saklandığı süper tip / alt tip kalıbı ve belirli bilgileri kullanıyorum alt tür tablolara konur. Benim açmazım aşağıdaki iki tasarım arasında seçim yapmak:
Üst diyagramda tüm cihazlar ortak alt türleri paylaşır. Örneğin, masaüstü bilgisayarlarda ve dizüstü bilgisayarlarda aşağıdaki tablolarda kayıtlar bulunur: Aygıt, NetworkDevice. Bir anahtarda şu kayıtlar bulunur: Device, NetworkDevice. Bir yönlendiricinin kayıtları şöyledir: Device, NetworkDevice, WANDevice. Konumunu izlediğimiz tüm cihazların Konum'da bir kaydı olacaktır. Bu kurulum için düşündüğüm bazı artıları ve eksileri:
- Profesyonel: Kayıtları Ana Makine Adı veya LocationID gibi ortak bir alana göre seçmek daha kolaydır.
- Pro: Boş alan yok.
- Con: Belirli bir cihaz için CRUD işlemlerine dahil edilmesi gereken tablolar açık değildir ve gelecekteki DBA'ları karıştırabilir.
Alt şemada tüm cihazların kendi alt türleri vardır (Burada gösterilmeyen daha fazla cihaz sınıfı vardır). Bu durumda, hangi tablo kayıtlarının ekleneceği veya seçileceği açıktır. Masaüstü bilgisayarlar ve dizüstü bilgisayarlar Bilgisayar, vb gidin. Bu kurulum için düşündüğüm bazı artıları ve eksileri:
- Pro: Alt türler için CRUD işlemleri için hangi tabloların kullanılacağı hemen açıktır.
- Pro: CRUD işlemleri için yalnızca bir tablo kullanmanız gerekir.
- Con: Kayıtları ortak alt tür alanlarına göre SEÇMEK için tüm tabloların birleştirilmesi gerekir; örneğin, Hostname veya LocationID ile arama.
Her iki durumda da, ClassDiscriminator alanı, hangi türlerin eklenebileceğini denetlemek için bir CHECK kısıtlamasıyla kullanılmak üzere alt tip tablolara yerleştirilir.
Hangi tasarımın daha iyi olduğuna dair herhangi bir öneri var mı, yoksa tamamen bir fikir meselesi mi ve veritabanının amaçlanan amacına bağlı mı?
EDIT: "NetworkDevice" tablosunun örtüşen doğası ile ilgili bir soru var. Bu tablo, bilgisayar, anahtar veya yönlendirici olsun, ana bilgisayar adı ve / veya IP adresi olan herhangi bir aygıt için ağ bilgilerini tutmak içindir. Bu tablonun örtüşen doğası sorunlara neden olabilecek bir şey mi, yoksa bu şekilde uygulamak uygun mu?
Sağlanan tüm girişler için şimdiden teşekkür ederiz. Lütfen ek bilgi gerekip gerekmediğini sorun.