Özel Alanlar ve Veri Türleri için Tasarım Desenleri / Stratejileri


12

Veri nesnelerine özel alanlar ekleme veya kendi özel nesne tanımınızı oluşturma yeteneğine sahip uygulamaları tasarlamak için ortak stratejiler veya tasarım kalıpları var mı? Örneğin, kendi bilgi türlerinize sahip olabileceğiniz SalesForce gibi ürünleri, Expression Engine gibi çerçeveleri ve kanalları ve kanal alan gruplarını işleme biçimini (Örnek) veya CMSes Like wordpress'in özel yazı türlerine alan ekleyin.



Not: Oracle, bunu (anladığım kadarıyla, ortak) şekilde uygulayan herkesin pantolonunu dava ediyor. Ben de göz atarım.
Steven Evers

Yanıtlar:



4

EAVModeli açıkladığınız olarak normalde yapılandırılmamış şemaları için kullanılır.

Performans ve bu tür dinamik özellikleri geçici bir şekilde sorgulama yeteneğine sahiptir ... ve bu nedenle birçok kişi tarafından bir anti-desen olarak kabul edilir.

Diğer yaklaşımlar, arama yapmaya yardımcı olması için her bir mülk için ayrılmış depolama alanıyla, bu özellikleri korumak için XML veya Json gibi dinamik bir biçim kullanmaktır.


Ayrıca, belge odaklı veritabanlarını EAV'ye alternatif olarak kullanan insanları duydum, ancak böyle bir yaklaşımla kişisel deneyimleri yok.
SinirliWithFormsDesigner

@FrustratedWithFormsDesigner - Bahsettiğim şey buydu, ama kendin gibi kişisel deneyimim yok.
Oded

4

@Oded'in açıkladığı EAV tablosuna ek olarak, insanlar bu tür bilgiler için nosql datbase kullanır. Uygulamanızın ilişkisel modelle anlamlı parçalar için ilişkisel bir veritabanı kullanmamasının bir nedeni olmadığını ve bu bilgiler için bir nosql veritabanını kullanmamasının bir nedeni olmadığını unutmayın.

Üçüncü bir olasılık, müşteri tarafından eklenen alanlar (Customerfield1, customerfield2, vb.) İçin birkaç sütun eklemektir ve ardından müşterinin ne anlama geldiğini tanımlamasını sağlamaktır. Bu, yalnızca eklediğiniz müşteri tarafından yapılandırılabilir alanların sayısı için çalışır, bu yüzden yalnızca iki veya üçe ihtiyaç duyacaklarını beklerseniz iyi olur, ancak yüzlerce ihtiyacınız varsa hiç işe yaramaz.


1

UDF1, UDF2, UDF3 içeren bir tabloya sahip ilk uygulamaya sahip olamazsınız ... Diğer öneriler (EVA veya NoSQL) çok daha iyi.

RDBMS'ye ( SQL Server bunu sunar ) bağlı olarak, normalleştirmeyi bozabilir ve verileri XML biçiminde veya yalnızca düz metin olarak tutan bir alanınız olabilir. Bunu yönetmek için koda güvenmeniz gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.