PHP kullanarak MySQL Kayıt Verilerini takın

3 Cevap php

Ben mümkün olan en iyi şekilde bu soran olmayabilir ama benim en zor çalışacağız. Öncesinde yardım için zaman teşekkür ederiz:

Ben bir birey OR yönetici, profesyonel sporcular için tıbbi test hizmetleri için kayıt sağlayan bir kayıt web sitesi oluşturma. Kimsenin veritabanı içinde depolanan bilgileri görebilirsiniz bir sorgu DB gibi siteyi kullanarak olmayacak. Aslında sonra gerektiği gibi bilgiler yerine sadece saklanır, ve bizim ağ sağlayıcısı bir CSV formatında birlikte geçirilir böylece kullanabilirsiniz. Iki olası senaryo vardır:

Scenario 1 - Individual Enrollment

Tek bir atlet onu / kendini kayıt seçerse, onlar, kendi kişisel bilgilerinizi girin onların ödeme bilgileri (kredi / banka hesabı) işleme göndermek ve onların bilgi Athlete1 gibi bir online veritabanında saklanır.

Scenario 2 - Manager Enrollment

Bir yönetici o /, için teşvik onun kişisel bilgilerini girer, o zaman (isim, adres, ssn, dob, vb) için ödemek istediği her sporcusu için kişisel bilgilerinizi girer, sonra için ödeme bilgilerini gönderir yöneten birkaç sporcular kayıt seçerse TÜM sporcular o kayıt edilir. Bu sayı (o dönmek ve ek sporcular için bir takip kayıt tamamlamak edebilirsiniz) 1 tek atlet, yukarı tek kayıt başına 20 sporcu arasında olabilir.


Başlangıçta, ben 400 sütunları (örneğin isim, dob, SSN, vb gibi sporcu başına 10 üzerinde alanlar ile 20 sporcu düşünüyorum) yerleştirilmiş tek bir tabloda ne olursa olsun kayıt türü TÜM bilgi evi için veritabanını inşa edildi.

Şimdi düşünüyorum da daha fazla, ben birden fazla tablo oluşturmak inanıyorum (yönetici (ler), sporcu (lar)) burada ama şu çok önemli nedenlerle bu konuda gitmek nasıl hala oldukça emin değilim daha iyi bir fikir olabilir:

Issue 1

Ben ana tablo olarak yöneticisi liste varsa, ben bireysel kaydolan sporcu birincil tablodaki görünmüyor korkuyorum ve ağ sağlayıcıları için gönderilmesi gereken toplam tescil dosyasına dahil edilmeyecektir.

Issue 2

Bir yönetici tarafından alındı ​​ediliyor Tüm sporcular F1 ve F2 savaşçı kimliği ile ilgili F1FirstName, F2FirstName gibi OTURUM muhafaza edilmektedir. Ben teknik olarak PHP kullanarak ayrı satırlara altında aynı tablo içinde birden fazla parça bilgilerini saklamak için nasıl konuşan emin değilim. Örneğin, tüm athleteswill ilk isim var. I yapmak için çalışıyorum ne çok temel teori:

If number_of_athletes >1, store F1FirstName in row 1, column 1 of Table "Athletes"; store F1LastName in row 1, column 2 of Table "Athletes"; store F2FirstName in row 2, column 1 of Table "Athletes"; store F2LastName in row 2, column 2 of table "Athletes";

Bu mantıklı mı? Bu soru çok uzun ve muhtemelen zor olduğunu biliyorum ben rehberlik takdir.

3 Cevap

İki tablo oluşturmanız gerekir: managers ve athletes

athletes tablo atlet kendini imzalanmış ise yukarı veya NULL sporcu imzalanan yöneticisinin kimliği içerecektir adında bir sütun manager_id içerecektir.

Çıkışı sırasında, iki CSV dosyaları (her tablo için bir) oluşturun.

Daha fazla okuma:

Defining Relationships

Eğer gelecekteki sunulması için isimlerini muhafaza edecek olursa, o zaman farklı bir tasarım kullanmalısınız. Bir yönetici aynı zamanda bir sporcu olabilir, varsa da düşünmelisiniz. İNSANLAR, KAYIT ve REGISTRATION_ATHLETE: Akılda bu puanla, üç tablo bulundurun. İNSANLAR tüm sporcu ve yöneticisi içerir. KAYIT test için bir veya daha fazla birey bir sunulması için tüm bilgiler Usta tablodur. Her Sporcu test için REGISTRATION_ATHLETE bir satır vardır.

People table:
---------------
People_ID
Type (A for Athlete, M for Manager B for Both)
First Name
Last Name
Birthdate
other columns of value

Registration table:
-------------------
Registration_ID
Registration_Date
People_ID  (person requesting registration - Foreign Key to PEOPLE)
Payment columns....

Registration_Athlete table:
---------------------------
Registration_ID (Foreign Key to REGISTRATION)
People_ID      (Foreign Key to PEOPLE)

Ben mysql kişi değilim, ama yapısı bu basit tip işe düşünürdüm.

O PCI içine kaçınmak isteyecektir (Payment Card Enstitüsü) kuralları, (karmaşık ve pahalı düşünüyorum) çalıştırır Son olarak, kredi kartı bilgileri saklamak problemlidir. Vb Google Checkout gibi üçüncü bir taraf aracılığıyla ödemeleri, işleme ve kredi kartı yakalayan düşünün.

Peki sizin comment cevap dayalı ve sizin için ne arıyor. Bunu yapabilirdi.


Kayıt için bir veritabanı oluşturun.

Sütunlar kimliği, adı, regDate, IsManager, YöneticiNo (ihtiyacınız Else olursa olsun) oluşturun.

Yönetici 1 IsManager set ve adı ve regdate dayalı bir karma oluşturmak kaydeder, o Sporcuların tüm ilave olacağını Yöneticileri Benzersiz Kimlik olacağını yöneticisi kayıtları olduğunu girişleri.

Yalnız bir sporcu kayıtları kimliği hakkında endişe ve sadece 0'a IsManager koymayın zaman.


Ben olsa da basitleştirerek olabilir düşünüyorum. Sorgular farklı şekillendirme için büyük olmaz ama sizin db ayak izini en aza indirmek için çalışıyoruz eğer iyi olmalıdır