Neden sadece bir veritabanı olarak MySQL için sağlamak çok PHP siteleri var?

10 Cevap php

MySQL ile amatörce ettik ve şahsen ben Postgres gibi daha RDBMSs it ölçüde aşağı bulmak; Ben uzun bir yol kat etti ve, benim bilgi bile son sürümü artırıldı itiraf ederken bile destek CHECK kısıtlamaları veri bütünlüğü (bu anahtar veriyor ama onunla hiçbir şey yapmaz) doğrulamak için yapar.

Uzakta, Microsoft teknolojileri ve açık kaynak haline geçiş bakıyor biri olarak, ben only temel veritabanı olarak MySQL ile çalışacak PHP destekli uygulamaların çokluğu karşısında dehşete duyuyorum. Bu uygulamalar bir dizi gerçekten iyi ve gelişiminde bir sürü iş kaydetmek istiyorsunuz, ama onlar veritabanı agnostik olmak için soyutlanmış olmamıştır aslında genellikle benim ve teknik ortakları için bir anlaşma katil.

MySQL bu kadar popüler olduğunu anlamak ve neden hemen hemen her zaman PHP ile kullanılır, ama neden bu kadar çok PHP destekli siteler düzgün diğer veritabanları için izin için geliştirilecek reddediyorum, ama çok daha iyi olduğunda yerine MySQL zorlamak - Ben merak ediyorum ve daha "veritabanı gibi" seçenekler orada? Şahsen bu veritabanı gerektiğini hissediyorum çünkü ben kullanmak istiyorum bu uygulamalar giderek sinirli alıyorum, ama onlar sadece MySQL ile çalışmak ve ben şahsen Postregs çok daha iyi bir veritabanı bulmak çünkü kullanmak için kendimi getirmek, ve olmaz yerine sadece kod düzeyinde bunu yapmanın o kendi kısıtlamaları zorlamak.

Ben MySQL popüler olduğunu biliyoruz ve bir bad sistem değil, ama büyük bir uygulama bulmak zaman nefret ve veritabanı MySQL olduğunda geliştiriciler MySQL özgü modülleri kullanıldı ve / veya çünkü sadece iş olacak sözdizimi.

10 Cevap

Bu, ücretsiz gidiş almak kolay ve güçlü çünkü çoğu PHP geliştiricileri PHP ile gelişir. Aynı nitelikleri tüm MySQL ile paylaştı, bu yüzden doğal bir uyum vardır.

Söyleniyor, birçok profesyonel geliştiriciler onları diğer backendleri ile kolay entegrasyon sağlayacak veri soyutlama katmanları oluşturmak. Ancak çoğu projeler bu tür şeyler gerekmez.

Eminim sadece MSSQL destekler çok ASP.NET şeyler var onun aynı nedenidir. Onun geleneksel veritabanı sadece kongre ile dili ile eşleştirilmiş. Artı / bina veritabanı bağımsız çözümleri kullanılarak diğer pek çok insan bu uylaşımını zaman "ihtiyacın olacak değil" bu şeylerden biri sert ve. Onun gerektiğinde onun içeri "sayfa hatalı olabilir" şeylerden biri

Başka DB kullanmak için bir php app almak gerekiyorsa, php belki işi kendiniz yapabilirsiniz, muhtemelen açık kaynak.

Cross-platform support sürece, SQL ile ilgili olarak, bir duck gibidir.

Biliyor musun, bir duck can walk, can fly and can swim — and does all this equally bad.

Aslında noboby tatmin edici, herkesi tatmin etmeye çalışmak, sonra bir platform sadık ve iyi optimize edilmiş uygulama geliştirmek için daha iyidir.

Çoğunlukla neredeyse tüm PHP-yetenekli hizmetleri MySQL ve sadece MySQL sunan hosting gerçeğinin mantıksal sonucudur bu. Neredeyse hiç kimse uygulamayı needs bunu kullanarak zaman soyut veritabanına ekstra çalışma çoğu zaman gereksiz sayılır.

LAMBASI son derece yaygın bir gelişme yığını. PHP kullanmak bile insanlar LAMP temsil bilmek yeterince yaygın.

(Hepiniz 1) bilmiyorum olanlar için, LAMBASI en yaygın L inux açılımı, A pache, M ySQL ve {[( 3)]} HP.

Ben önemli nokta "hemen hemen her zaman PHP ile kullanılıyor" dedi tam olarak ne olduğunu düşünüyorum. MySQL için geliştirerek, onların hedef kitleye maksimize ediyoruz. Evet, birden fazla veritabanları ile çalışmak edebilmek için geliştirilen eğer ideal olurdu, ama bu ekstra çalışma adil bir miktar olabilir. Bu projelerin bir sürü sadece muhtemelen başlangıçta birden motorları ile uyumlu olacak şekilde tasarlanmıştır değildi birinin kişisel projesi, büyür. Onlar oldukça uzak konum sonra, birden çok veritabanı sistemleri desteklemek için kodu yeniden yazmak için önemli bir iş haline dönüşmeye başlar, ve onların kullanıcı yerine sahip olacağını diğer özellikler / düzeltmeleri genellikle var.

Ben de büyük ölçüde pgsql tercih, ama ben diğer insanların PHP uygulamalarını (forumlar, bloglar, vb) kullanmayı planlıyorsanız, sadece muhtemelen onları desteklemek için MySQL çalıştırmak zorunda gidiyoruz bir gerçeklik olduğunu düşünüyorum.

Eskilere kullanım kolaylığı büyük bir fark vardı. MySQL basit bir görev için kullanımı kolay ve çok hızlı oldu. Geri sonra tam ASİT, ne tetikler, ne subselects, ne prosedürleri vermedi. Öte yandan yüklemek ve mantain karmaşık çok daha yavaş oldu (sonra tekrar Postregs denir) PostgreSQL, vardı, ama gerçek RDBMS'in gücüyle sağladı. Şey, web uygulamaları gerçekten RDBMS'in gücüyle gerek yoktu, bu yüzden birkaç PostgreSQL tarafından kullanılan iken MySQL, büyük popülerlik kazanmış olmasıdır.

Ah, bir şey daha var: PHP5 SQLite gibi gömülü geliyor. Yani çok yakında gerçekten tam şişmiş RDBMS'yi gerekmez yeni PHP uygulamaları bir çok yerine MySQL daha SQLite'ı kullanmak bekliyoruz.

Haklısın, PostgreSQL SQL ve diğer gelişmiş özellikler için çok daha iyi bir destek var, bu yüzden PostgreSQL MySQL üstün neden için çok iyi bir durum var.

Ancak, MySQL, PostgreSQL evlat edinme göreli bir çok kazanır ki, yüklemek ve sadece başlarken biri için yönetmek çok daha kolaydır. Bir giriş yapılandırma ve bunu belirli ayrıcalıklar vermek gibi basit görevler MySQL ile karşılaştırıldığında, bir PostgreSQL sunucu üzerinde çok kafa karıştırıcı.

Ayrıca, birkaç yıl erken MySQL Windows için yerli ikili sunulan ama PostgreSQL vermedi nerede vardı. Bunu Cygwin altında çalışmak alabilir, ama bu pek gerçek bir Windows geliştirici için tatmin edici oluyor. PostgreSQL özgün destek, Windows yaptığımız zaman, MySQL pazar payı ve marka tanınırlığı önemli bir kurşun vardı.

BTW: http://www.postgresql.org/support/professional_hosting_northamerica

IMO çok MySQL sadece siteleri ile büyük problem veri bütünlüğünü gerekiyorsa size oldukça çok berbat ve kendi yazılım yazmak yerine zorunda konum çok MySQL, "gerçek" bir veritabanı yarısı özelliklerini desteklemiyor olduğunu Mevcut çözümler yararlanarak, ya da uygulama uzlaşma ve veritabanı düzeyinde gerçek bir bütünlük kontrolleri yok. Bir kaya ve sert bir yer arasında bitirmek.

Biz pasta isteyen ve bu soru ile de bunu yiyoruz. İlk olarak, veritabanı soyutlama istiyoruz. Sonra, biz soyutlama arkasında kullanmayı tercih RDBMS CHECK kısıtlamaları istiyorum.

Ha? Yani, biz PHP kendisi kontrol verileri yapmayı ihmal edeceğiz, ve şeyler Çekler olmadan veritabanlarını kullanarak kıracak demektir. O ya biz iki kez işi, kontrol olmadan bir soyutlanmış veritabanı desteği PHP kontrolleri uygulamak OLACAKTIR ya.

Ben tam veritabanı soyutlama çabaya değmez, ve çoğunlukla bir sorun arayışı içinde bir çözüm olduğunu düşünüyorum.