gelişmiş bir php uygulama oluştururken nasıl bir mysql veritabanı tasarımı nasıl biliyor musunuz?

3 Cevap php

Ben php bir alışveriş sepeti, ya da forum oluşturdu hiç. bir kenara böyle bir proje ya da nasıl böyle bir proje olmanın nasıl gösterilecek öğreticiler görüntüleme ve başka bir kişi proje analiz veya görüntüleme. nasıl bir kişi böyle bir şey yaratmak için veritabanı yapısı tasarımı nasıl bilemez? Onun probbably deneme ve yanılma yoluyla tahmin im ...

3 Cevap

Veritabanı tasarımı hakkında bilgi edinebilirsiniz ana tekniği denir Database Normalization.

Veritabanı normalizasyon size birçok işlem var, özellikle limitleri bulunuyor vardır. Bir noktada Denormalize zorunda olabilir.

Ama imho bir normalize veritabanı tasarımı ile başlamak her zaman iyidir.

Eğer okumak ve normalization temellerini anlamak gerekir. en projeleri için, 3. normal form normalleştiren sadece iyi olacak. Orada daha fazla veya daha az normalleşmeyi istediğiniz zaman belli senaryolar her zaman vardır, ama arkasındaki kavramları anlamada size veritabanı bir normalleştirilmiş biçimde yapılandırılmıştır nasıl düşünmek sağlayacaktır.

Burada bir tablo normalleştirilmesi çok temel bir örnek:

students
  student_id
  student_name
  student_class
  student_grade

oldukça standart bir tablo çeşitli verileri içeren, ama biz hemen bazı sorunları görebilirsiniz. bir öğrencinin adı, onun kimliği bağımlı olduğunu görebilirsiniz, ancak, bir öğrencinin birden fazla sınıfa dahil olabilir, ve her sınıf makul farklı bir not olurdu. biz o gibi tablolar hakkında düşünebilirsiniz:

students
  student_id
  student_name

class
  class_id
  class_name

Bu kötü değil, şimdi biz çeşitli öğrenci ve çeşitli sınıfları görebilirsiniz, ama biz öğrencinin notları esir değil.

grades
  student_id
  class_id
  grade

şimdi bize belirli bir öğrenci, belli bir sınıfın ve bu sınıf ile ilişkili bir sınıf arasındaki ilişkiyi anlamamızı sağlayan 3 tablo var. bizim ilk ilk tablodan, biz şimdi (en biz :) örnek uğruna başka notlarını normalleştirmek gerek yok varsayalım) bir normalize veritabanında 3 tablolar var

Bu çok temel bir örnek seçip ayırmak bir kaç şey:

  • Bizim veriler tüm çeşit (student_id, class_id ve student_id + class_id) bir anahtara bağlıdır. Bu her tablo içinde benzersiz tanımlayıcılardır.
  • Bizim anahtarlı ilişkileri ile, biz (öğrenci # 4096 kayıtlı kaç sınıfları?) birbirlerine bilgi ilişkilendirmek mümkün olacaktır
  • bizim tablolar student_class birçok öğrenci için aynı değer olabilir, bizim ilk tabloda, düşünmek (şimdi biz sınıf adını değiştirmek olsaydı., biz. tüm kayıtları güncellemek gerekiyor çoğaltılamaz veri içermez görebilirsiniz bizim normalize biçimi, sadece class_id arasında class_name güncelleyebilirsiniz)

Ben de veritabanı şeması oluşturmak için görsel bir editör kullanarak öneriyoruz. Geçenlerde kullanıyorum: http://dev.mysql.com/workbench/

Eğer bir veritabanı tasarımı oluşturduktan sonra, daha deneyimli birini bitti bakmak ve size geribildirim vermek var. Ama tasarımı geçirebilirsiniz kadar zaman, sonunda uygulama yapmak ve bir şey eksik ya da daha iyi bir iş başka bir şekilde yaptığını yapabilirdi bulacaksınız olacağını biliyorum.

Yani, tasarım, geri bildirim almak, ama değiştirmek için korkmayın.