Bir web uygulaması tasarımı ile acemi tavsiye Programlama

5 Cevap php

Ben eğlenmek için HTML / CSS biraz ama ben bazı programlama becerileri toplayıp bakıyorum.

PHP ve MySQL üzerinde okuma olmuştur. Şimdiye kadar çok zor gibi döngüler, koşul ifadeleri vb gibi kavramları anlamada ama sıkışmış almak istiyorum ve ben çok sıkıldım okuma olsun önce bir uygulama geliştirme ve tamamen vazgeçerek başlamak bulamadı.

Benim fikrim ...

Ben şu anda bir sınav için eğitim olarak gerçekleşmesi ve kağıt üzerinde bu uygulama sınavları var. Ben bilgisayarda sınava böylece bir app içine koymak neden düşündüm.

Özellikler:

  • App çoklu sınavlar tutabilir
  • Bu soruları randomise veya sırayla bunları görüntüleyebilirsiniz
  • Her soru için cevap görüntülemek için seçeneği var
  • Sınavı tamamlamak için süreyi ZAMAN
  • Yeni sınavları ve sorular / cevaplar eklemek için Yönetici sayfası

Tamam, siz bunu Merhaba Dünya üzerinde bir adım olduğunu biliyorum ama bir yerde bir başlangıç ​​yapmak düşündüm, şimdi gülme durduramaz!

Siz yeni başlayanlar için daha iyi olduğunu düşünüyorum eğer PHP / MySQL veya belki RoR bu gelişecektir. Ben DB ok okuma / yazma olacağını düşünüyorum ama ben site yapısı, DB tasarım ve bunu yapmak için bir yol genellikle en iyi o kadar emin değilim.

Ben 50 sorudan oluşan bir sınav varsa, her bir kimlik verilir. Ben bir soru silerseniz nasıl yeni kimlikleri ile kalanını güncelleyebilirim? Yani Ben soruyu 3 silerseniz, aşağıdaki tüm soruları 1 geri onların kimlik kayması gerekir.

EDIT:

Nasıl benim veritabanı şemasında tek bir sınavın bir örneğini temsil eder? Soruları bir tek sınav için benzersiz olacak beri sınav ve soru ilişki, birçok biri olacaktır. Ama birden çok sınav var hedefliyorum beri, ben bunu nasıl temsil ediyor?


Nasıl benim veritabanı şemasında tek bir sınavın bir örneğini temsil eder? Soruları bir tek sınav için benzersiz olacak beri sınav ve soru ilişki, birçok biri olacaktır. Ama birden çok sınav var hedefliyorum beri, ben bunu nasıl temsil ediyor?

5 Cevap

OK, first of all, welcome :) Second of all: yours is not a stupid idea at all, in fact, you have chosen the best way to learn how to program: do something useful and fun.

Sorunuza almak için: neden sorular için ardışık kimlikleri gerekiyor? Veritabanı-bilge, sadece satırda farklı kimlikleri olması gerekir.

Bir ekran gereklilik ise, neden ekranda sırasında bir döngünün üzerinde bir numara atamak değil mi? Yani, örneğin yaptığınızda bir foreach Eğer her döngü de artırmalısınız bir dizin değişkeni tutabilirsiniz soruları görüntülemek ve sıralı görüntülemek için kullanmak.

Bu iyi şans, arıyoruz ne olduğunu umuyoruz!

Burada en büyük şey, bence, sizin veritabanı yapısı olacaktır. Sen db-tasarım ve normalleşme hakkında biraz okumak istiyorum gidiyoruz. Temelde mantıksal uygulama mevcut farklı varlıkları planlamak isteyeceksiniz:

  1. Sınavlar
  2. Sınav Girenlerin
  3. Sorular
  4. Yanıtlar

Ve bunlardan bazıları birbirine bağlı olacaktır:

  1. Sorular -> Sınavlar
  2. Takers -> Sınavlar
  3. Yanıtlar -> Sorular

Böyle durumlar var zaman, ilişki olup olmadığını belirlemek için gereken bir-bir, bir-çok veya çok-çok. Sorular bir sınav veya birçok ait olabilir. Eğer karar için o kadar var. Soru sadece bir tek Sınavı aitse, bir ExamID tutmak için Soru tablodaki bir alan oluşturabilirsiniz. QuestionID, ExamID: Soru birçok sınavlara ait varsa, iki alan ile yeni bir tablo oluşturmak gerekir. Bu çok-çok ilişki kurar.

Tüm dürüstlük, bu çok az programlama deneyimi olan biri için çok büyük ve zor bir girişim olabilir. Bence, bir ziyaretçi defteri veya mini-blog gibi çok basit bir şey ile başlamalıdır.

Eğer inşa etmeye karar ne olursa olsun uygulama, SO yol boyunca hepiniz için burada.

Ben 50 sorudan oluşan bir sınav varsa, her bir kimlik verilir. Ben bir soru silerseniz nasıl yeni kimlikleri ile kalanını güncelleyebilirim? Yani Ben soruyu 3 silerseniz, aşağıdaki tüm soruları 1 geri onların kimlik kayması gerekir.

Birincil kimlikleri hiç değişmemelidir. Eğer tablodaki bir satır sildiğinizde, gelen birincil kimliği sadece kaybolur, ancak diğer satır birincil anahtarlar hiçbir renumbering olmalıdır.

Eğer Rails ile gitmeye karar verirseniz, Ryan Bates'in mükemmel screencast sitesi Railscasts check out.

Bu tür uygulamalar zaten var olsa bile bir özel uygulama, programlama öğrenmek için mükemmel bir yoldur (ve onlar yapmak - ama ben, o bakıyor önlemek sadece oluşturmak ve öğrenmek istiyorum!).

Özelliklerine bir soru herhangi bir sırayla görüntülenebilir olmasıdır. Başka bir bunlar kaldırılabilir olmasıdır. Yani, numaralandırma doğrudan soru ile ilgili olmadığı açık - test soru seti ve onların düzen, kurulduktan kez dinamik olarak oluşturulmuş olmalıdır. Sen bileşenlerin tasarımı için temel sağlamak bu gereksinimleri aracılığıyla düşünmek gerekir. Kullanıcı arayüzü soru veritabanından izole edilmelidir program mantığı, izole edilmelidir. Mümkün olan en ilkel biçimiyle bu parçalar arasında bilgi aktarmak için deneyin. Eğer tabakaların birini yeniden istediğiniz zaman bu şekilde, size her şeyi değiştirmek zorunda kalmazsınız.

Ben yararlı bir uygulama uygulama web gelişimini öğrenmek için harika bir yoldur, tüm diğer yanıtlar ile katılıyorum. Jonathan söylediğimiz gibi, bu oluşturmak için planlama çok basit bir uygulama değil. O dedi, burada benim düşünceleri vardır:

Ruby on Rails is a framework for Ruby. It can also utilize MySQL. PHP is a programming language (as ruby is for RoR), and provides no framework. There are quite a few for PHP though, CodeIgniter, Zend Framework, Symfony or CakePHP to name a few. Frameworks implement often-used aspects of an application in a flexible way, so they can be used for various applications. Some of these aspects may be authentication, database access, caching, template rendering and a lot more.

Altyapıları genellikle php seçerseniz, birincil hedef öğreniyor ise, kendi çerçevesini yazmak denemek isteyebilirsiniz, uygulama geliştirme hızlandırmak için yazılır. Hala diğer çerçeveler bir göz atın ve ne olduklarını görmek için onları denemek ve nasıl çalıştıkları gerekir.

Ben bir veya iki çerçeveler için birkaç öğreticiler ile izlemenizi tavsiye ederim, ve zaten bilmiyorum her şeyi araştırmaya (MVC, vb desenleri Kodlama). Ben english wikipedia çok yararlı buluyorum.

Uygulamanızın diğer kısmı veritabanı olacaktır. Eğer şema kurdunuz sonra bazı çerçeveler, ORM çeşit, sizden "kalkan" olacak veritabanı erişimi sunuyoruz. Eğer o veritabanından veri alırken çerçeve ne biliyorum çünkü ben hala, bir veritabanını sorgulamak için nasıl bakmak tavsiye ederim.

This mysql-server için bir intro için iyi bir kaynak gibi görünüyor, ve (db-sunucusunu sorgulamak için) sql-öğreticiler bazı bağlantılar içerir. Ve ben this tutorial veritabanı şeması oluşturmak için nasıl öneriyoruz.

Ben bu kaynakların bazıları sizin için yararlı ve size iyi şanslar dileriz.