Tabloları doğru yapılırsa Benim son mysql db, birisi kontrol edebilir?

2 Cevap php

Ben bu tablolar var:

category table:
cat_id (PK)
cat_name

category_options table:
option_id (PK)
cat_id (FK)
option_name

option_values table:
value_id (PK)
option_id (FK)
value

classifieds table:
ad_id (PK) (VARCHAR) something like "Bmw330ci_28238239832"
poster_id (FK)
cat_id (FK)
headline
description
price
etc....

posters table:
poster_id (PK)
name 
email
tel
password
etc....

Three main questions:
1- Is the above good enough? It covers all my needs atleast...

2 - Ben farklı sorgular denemek Bazen, ben ... sadece bir ad_id itibaren bir tam reklam alıp bir PHP sorgu dizesi garip sonuçlar yazabilir misin olsun? (Eğer varsa tek değişken ad_id hayal)

3 - Sorgu dizesinde, bir reklam göstermek amacıyla bağlı olan tüm farklı tablolar belirtmeniz gerekir? Ben sadece "SELECT * ad_id = $ ad_id ilanlar DAN" ve otomatik bağlantıları işlemek, yani aynı zamanda ilgili tüm bilgileri almak?
Gibi bir şey kullanmak değil miyim

Teşekkür ve bana bildirin daha fazla girdi gerekiyorsa!

2 Cevap

1) Sizin ihtiyaçlarınızı karşılıyorsa, o da "yeterince iyi" yapmak değil mi? Ama cidden, ben ad_id alan bir int / Bigint yapmalıdır davek ile kabul edeceğini, ve ben de posters tablo için aynı öneririm. Ismini düzenli bir değer alanını yapmak ve bunun için bir AUTONUM int / Bigint PK alanı oluşturun. Bu kullanıcı (belki de gizlilik endişeleri, için) kendi adını değiştirmek isteyen herhangi bir nedenle, o zaman siz de veritabanındaki herhangi bir yabancı anahtarları güncellemek zorunda kalacağını. Bir AUTONUM tuşu ile bu sorunu olmazdı.

2) Evet, görüyorum ne sadece ad_id bilerek bir reklamın tüm verileri toplamak gerekir.

3) Hayır, bir SELECT sorguda eş birleştirmek, ya da MySQL yoksa içeri veri çekmek için JOIN anahtar sözcüğünü kullanmak ya, bundan daha fazlasını yapmak gerekir "meta" (MS Access gibi) ilişki modeli, otomatik olarak birincil / yabancı anahtar ilişkileri anlamak kalmazsınız.

Sen ciddi tasarım sorunları var. Şimdiye kadar hiç bir PK olarak isim kullanmak asla; benzersiz değildir ve değiştirilebilir! Onlar Örneğin evlendiklerinde Kadınlar onların isimlerini değiştirebilirsiniz. Aslında, hiç bir PKS olarak varchars kullanmayın. Yerine vekil tuşlarını kullanın. Vekil tuşları, değişmez metin tuşları değerleri sık sık yapmak ve onlar yavaş da vardır.

Ve sadece tek bir alan olarak adını depolamak asla, bu kötü bir uygulamadır. Minumum size ilk adını, soyadını, orta ad ve sonek gerekir. Chicago'da bir adreste John Smith başka Chicago'da yaşayan farklı John Smith ile tablo var, böylece aynı zamanda bir autoincrementing id alanına ihtiyacınız wil.

Hayır, bir birleştirme kullanımı yoluyla sorguya ekleyerek olmaksızın ilişkili tablodan tüm verileri alınamıyor. Bu veritabanı 101 ve bunu bilmiyorsanız, o zaman bir tasarım için yeterli ilişkisel veritabanları anlamıyorum. Katılır ve sorgulama içine biraz araştırma yapın. Eğer mevcut ilişkiler çalışması için görünür olarak sadece rağmen reklam kimliği olan bir reklam için tüm bilgi alabilirsiniz.

Ima kullanmayın etmeyin sorguları diğer tabloları eklediğinizde katıldı. Onlar 18 yıl eskidir. Açık birleşimler kullanarak doğru öğrenin.