2010-03-05 22 views
8
i insanlar fotoğraf/video verebilmeleri bir php uygulaması yapmak istiyorum

/Şimdi Bu proje için en iyi SQL şeması nedir?

sesler herşey rekor bu şekilde dosya infos ile SQL veritabanına eklenecektir yüklendi:

Photos_table : File_Name | Picture_Type | Picture_Width | Picture_height 

Videos_table : File_Name | Duration | Codec 

Sounds_table : File_Name | Bitrate | Duration | Codec 

App her türlü son tüm öğeleri görüntüler. önceki düzeni gibi yap veya böyle TEK tablodaki tüm infos yapma iyidir: Ben Infos toplamak için en hızlı yolu nedir demek

File_Name | Picture_Type | Picture_Width | Picture_height | Duration | Codec | Bitrate 

, ben sadece ilk şeması öncekinden daha organize olduğunu düşünüyorum bir.

Teşekkür

cevap

10

Kesinlikle hepsi bir arada değil. Medya yüklüyorsanız, tüm ortamların bir tablosunu oluştururdum:

Media_table: ID | MediaPath | ETC

Photos_table: MediaID | Resim_Type | Picture_Width | Picture_height

Video_table: MediaID | Süre | Codec

Sounds_table: MediaID | Bit Hızı | Süre | Codec

database normalization'a bakın.

+3

+1, ne yapardım –

+0

Bu kesinlikle en iyi yoldur. Ayrıca RDBMS'lerin kalıtımı olan nesnelere yaklaşması kadar yakındır. –

+0

Teşekkürler durilai, Bu şemayı kullanırsam MySQL sorgusunun tüm güncel medyayı nasıl alacağına dair bir fikrin var mı? & Çok teşekkürler – Ryan

1

ilk şemayı kullanın - Her tablo farklı bilgilerle farklı bir tür temsil eder.

İkinci şemaya sahip olsaydınız, tablonuzda bir çok boş değerle sonuçlanırdınız. Daha fazla normalized olduğu için, çoğu DB uzmanı birincisi ile gider.

3

Büyük bir performans farkı olmayacaktır. Bununla birlikte, ikinci yönteminizi kullanarak veritabanınızı kötü uygulama olarak nitelendirilen bir miktar denormalize olur. durilai tarafından cevap iyi olmasına rağmen ondan biraz kabul etmiyorsanız eğer

0

, ayrıca üç ayrı tablo tutmak ve iki yoldan biriyle sonuçlarını birleştirebilirsiniz: Bir ile

  • 1 sorgu BİRLİK.
  • Daha sonra PHP ile birleştirilmiş 3 sorgu.
İlgili konular