SO i başlangıçta i eav kullanarak düşündünüz ürün nitelik durum için ne RDF veri tabanı kullanabilirim?

3 Cevap php

http://stackoverflow.com/questions/695752/product-table-many-kinds-of-product-each-product-has-many-parameters benimsenen i gibi benzer bir sorunu var

ben şimdi RDF kullanmak eminim. Çünkü sadece above issue için cevap Bill Karwin tarafından yapılan yorumların biri

ama ben zaten mysql bir veritabanı var ve kod php bulunmaktadır.

1) Peki ben ne RDF veritabanı kullanmanız gerekir?

2) i yaklaşımını birleştirmek mi? i MySQL veritabanı bir sınıf tablo devralma var ve sadece garip ürün RDF niteliklerini anlam? Ben sadece sadece ürünler ve bana sorun veriyor mümkün nitelikleri ve değeri geniş bir dizi olduğu için ben bir RDF veritabanına her şeyi taşımak gerektiğini sanmıyorum.

3) Ne php kaynakları, yazılar ben bu oluşturulmasında daha iyi bana yardımcı olacağını bakmak gerekir?

4) Beni daha iyi daha iyi ürünlerin nitelikleri ve değerleri her türlü yapacak bir şey binanın üstünde meydan bağlamında RDF anlamanıza yardımcı olur daha fazla eşya veya kaynak büyük takdir edilecektir. i ne olup bittiğini bir kavramsal anlayışa sahip olduğunda ben daha iyi çalışma eğilimindedir.

Akılda ayı yapmak ben bu tam bir acemi olduğumu ve programlama ve veritabanı bilgim en iyi ortalama.

3 Cevap

Tamam, RDF ana faydalarından biri küresel kimliğidir, böylece RDBMS şema vekil kimlikleri kullanırsanız, o zaman tek bir sırasından vekil kimlikleri atayabilirsiniz. Bu şemaya bazı RDF uzantıları kolaylaştıracaktır.

Yani sizin durumunuzda (belki kullanıcılar vb) şemada ürünleri ve diğer kuruluşların kimlikleri için tek bir dizisini kullanmak

Muhtemelen, örneğin, 0-1 bir önem düzeyi olan alanlar ile ürünler tablo normalize RDBMS tablolarda gerekli alanları tutmalı.

Diğerleri ek bir tabloda tutabilirsiniz.

örneğin böyle

create table product (
  product_id int primary key,
  // core data here
)

create table product_meta (
  product_id int,
  property_id int,
  value varchar(255)
)

create table properties (
  property_id  int primary key,
  namespace varchar(255),
  local_name varchar(255)
)

Dinamik şeklinde de referans veri istiyorsanız aşağıdaki meta tablo ekleyebilirsiniz:

create table product_meta_reference (
  product_id int,
  property_id int, 
  reference int
)

İşte referans, şema başka bir varlık için vekil kimliği üzerinden ifade eder.

Eğer başka bir tablo için meta sağlamak istiyorsanız eğer, aşağıdaki tablo ekleyebilirsiniz, en kullanıcı diyelim:

create table user_meta (
  user_id int,
  property_id int,
  value varchar(255)
)

Bu daha spesifik bir öneri sonra benim ilk cevap çünkü ben, farklı bir cevap olarak koymak.

1 ve PHP ve MySQL kullanarak konum olarak 3) en iyi bahis olurdu konum ya web sitesi devletlerin bu bir önizleme sürümü olmasına rağmen ARC 2 (bu istediğiniz sürümü) veya RAP Eğer MySQL veri depolamak için izin veritabanı tabanlı depolama için izin ikisi de

ARC 2 benim deneyim daha popüler ve bakımlı görünüyor

2) RDF için her şeyi ve size veritabanında varolan verileri ile sorgu ne tür taşırsanız değiştirmek zorunda olacağını nasıl mevcut kod tabanı çok bağlı. Bazı yavaş olabilir Bazı şeyler RDF ve SPARQL kullanarak daha hızlı olabilir.

PHP ile RDF kullanmadıysanız, ama bir projede iki kalıcılık teknolojileri kullanırsanız, daha sonra genel sonuç muhtemelen yalnız birini kullanarak daha karmaşık ve riskli.

Eğer yaklaşım RDBMS ile kalmak Eğer aşağıdaki özelliklerini tanıtarak gibi daha RDF yapabilirsiniz:

  • RDF için bir gerekliliktir tüm vekil kimlikleri için tek bir dizisi, benzersiz tanımlayıcılar olsun bu şekilde kullanmak
  • ek veriler için konu + özellik + değerleri sütun ile zorunlu özellikleri ve uzatma tablolar baz tabloları kullanın

Sen RDF Haritalanabilir forma verileri tutmak için bir RDF motoru kullanmak zorunda değilsiniz.

EAV karşılaştırıldığında RDF dinamik veri modelleme için daha anlamlı paradigma.