Supertype / Alt Tür Yardım?

3 Cevap php

Ben bir hizmet tablo var. Her servis 1 ana kategori ve alt kategori 1 ile tanımlanır.

Örneğin,

Service = Joe's Web Company, MainCategory = Information Technology, SubCategory = Web Development

Sunulan her hizmet özellikleri bir dizi ortak (maliyet, yer, vb) sahip olacaktır

Her hizmeti de Alt Kategori özgü nitelikleri bir dizi olacak.

PHP (BOOL): 1, MySQL (BOOL): 0, Javasctipt (BOOL): 1 vs böylece Joe Web Şirketi benim yukarıdaki örnekte aşağıdaki özniteliklere sahip olabilir

EyeColour (ENUM): Mavi, Yükseklik (float): Ya bir aktör için de aşağıdaki özniteliklere sahip olabilir 5.11

Yani, bir supertype / alt ilişkisi düşünüyorum ancak biz 500 tabloları aşan konuşuyor olabilir iyi çalışacaktır.

Ben de Main Category genelinde hizmet aramak gerekiyor. Bunun için ben bu yüzden (bazı kategoriler 50 alt tipler / tablolar olabilir) her alt tipinin tablo arama gerekmez ana hizmet tablodaki bir anahtar sütunu oluşturma düşünüyordum. Ben Metin (onun anahtar kelime sütun 'PHP Javascript' içerecektir Joe örneğin) her hizmet için tipinin özelliklerini açıklayan bu sütun doldurmak için her gece bir komut dosyası çalıştırmak istiyorum.

Bu yaklaşım bakmak Tamam mı veya EAV çözüm tablo sayısı dikkate alınarak daha uygun olur?

3 Cevap

Ben 500 + tablolar oluşturarak gitmek için bir yol olduğunu sanmıyorum. Bu yapı tamamen ilişkisel daha "şema-az" ziyade olduğunu bana görünüyor. Ben (mükemmel bir örneğin http://bret.appspot.com/entry/how-friendfeed-uses-mysql buraya bak) adanmış bir belge odaklı dbms (mongodb, Tokyo Kabine) düşünün veya düşük seviye veri depolama gibi mysql kullanarak, kendi rulo ediyorum.

I document-oriented dbms CouchDB/PHP veya MongoDb / PHP görmek, iyi bir öneri olduğunu düşünüyorum. Herhalde RDF akla gelen bir grafik veritabanı, tercih ederim. Easy RDF ve RAP: PHP iki uygulamaları, kendim denemedim bulundu.

Bir çeşit ikinci soru ..

Belge odaklı dbms çözüm geliştirmek için çok zor olduğu ortaya çıkarsa / bu nasıl bir alternatif çözüm görünüyor korumak?

Alt kategori nitelik paket olması benim tasarım şema daha az yapar. Ne nitelik ana kategori seviyesine kadar paket taşındı eğer. Her bir alt kategori içinde öznitelikler sürü zaten diğer alt kategoriler ile paylaşılacaktır. Bunun dezavantajı tamamen benzersiz bir alt kategori o ancak biz benzersiz alt kategoriye ilgili bu özelliklerin kullanımını sınırlayabilir ana kedi diğer her alt kategoride öznitelikleridir empoze edecektir. Ben bir alt kategori vs kullanabilirsiniz attrbites belirlemek için uygulama mantığı kullanabilirsiniz.

Temelde bu alternatif yaklaşım, ancak oldukça geniş bir alt tipi olurdu geleneksel ilişkisel supertype / alt modelini kullanmak istiyorsunuz.

ps: Ben yeterli krediniz olsun cevaplar için oy verecek! lol iki fazla ihtiyacımız var