MYSQL tablo yapısı

4 Cevap php

Ben her bölüm için küresel bir görünüm tablo veya 1 oluşturmak karar vermek çalışıyorum. örneğin, ben ürünler, kategoriler ve sayfalar var diyelim.

Ben mesela 3 tablolar var mı:

CREATE TABLE `tbl_products` (
`p_id` INT NOT NULL ,
`p_views` INT NOT NULL ,
INDEX ( `p_id` ) 
) ENGINE = MYISAM 

CREATE TABLE `tbl_categories` (
`c_id` INT NOT NULL ,
`c_views` INT NOT NULL ,
INDEX ( `c_id` ) 
) ENGINE = MYISAM 

CREATE TABLE `tbl_pages` (
`pg_id` INT NOT NULL ,
`pg_views` INT NOT NULL ,
INDEX ( `pg_id` ) 
) ENGINE = MYISAM

Yoksa bütün örneğin depolamak 1 masa var

CREATE TABLE `tbl_views` (
`view_id` INT NOT NULL ,
`view_type` VARCHAR( 10 ) NOT NULL ,
`view_views` INT NOT NULL ,
INDEX ( `view_id` ) 
) ENGINE = MYISAM

View_type ürünler, kategoriler veya sayfaları da nerede.

Avantajları / dezavantajları her çözümün ne olurdu?

Şimdiden teşekkürler.

4 Cevap

Gerçekten 1 masa yöntemi gibi, bu i önemli olduğunu düşünüyorum, veritabanı düzenli tutar.

Ayrıca, daha sonra size farklı bir view_type ile başka bir tablo eklemek için olmazdı başka bir tip, sadece bir satır eklemek isteyebilirsiniz.

Kullanmak için hangi yöntem üzerinde benim kararım ihtiyaç vardır kaç kayıtları geliyor ve nasıl büyük bir olasılıkla bilgi miktarı değiştirmektir. Eğer sadece birkaç görüşlerini listeleme varsa, bir tablo iyidir.

Ürünleri + kategoriler + sayfa sayısının bin daha az ise, ben bir tabloda bunları birleştirmek istiyorsunuz. , Sadece bir tabloya eklemek gerekir: avantajı daha sonra bir alanı (eski bir bayrak örnek) eklemek istiyorsanız olmasıdır. Dezavantajı (biraz) daha fazla alan, yani depolama ve kullanıyor olmasıdır bellek.

Kayıtların sayısı büyüdükçe, listeleri ayıran performansını artırabilirsiniz. Tek tip çok daha fazla sayıda diğerlerine göre ise, küçük türleri tablo ayrıştırma veya bakım batağa saplanmış alabilirsiniz. Zaman farklı türlerini tedavi edip, boşluk bir sorun haline gelebilir.

Örnek: Ürünler daha fazla (tarzı gibi, fiyat, ya da kim görüntülemek için izin verilir) bilgi mi, ama Sayfalar ve Kategoriler, masa Sayfalar ve Kategoriler kullanmak asla yer ayırtmak istiyorum yok asla başlayın. Ardından, Sayfalar ve Kategori kayıtları aptal Ürünleri ile karışmış aramaya başlar.

Daha iyi olduğu tek bir tabloda tutmak, hiçbir seçmek zorunda bir örneğini de söylüyorlar. tüm 3 görüşlerinin birlikte çok daha kolay olacak ve hızlı üç ayrı tablolara göre tek bir tablo erişme veya hayır güncelleştirmek için söylüyorlar. iki veya daha fazla view_type 's görüşlerini yine çok daha iyi

Bu durumda ben bir tablo ile devam öneririz. Üç tablolar arasındaki tek fark, böylece ben de gerekli olduğunu düşünmüyorum, türüdür. Sadece tek bir tablo kullanarak bir avantaj olarak, bakış yeni bir tür eklemek gerekir, yeni bir veritabanı tablosu oluşturmak gerekmez - sadece yeni bir view_type tuşunu kullanabilirsiniz. Ancak görünümleri farklı türleri için farklı veri parçalarını gerekirse, (ex: "sayfalar" views sütununda "x" ihtiyacı ve "kategoriler" views sütununda "Y" gerekir) (bu veritabanı denir sonra ayrı tablolar isterim, normalleştirme).