0

私は学校/自分のためのプロジェクトに取り組んでいます。これはプロジェクトの説明です...

「私はギター教育ビジネスを始めようと考えており、生徒、レッスンスケジュール、音楽の興味、支払い履歴、年齢、電子メールアドレス、電話番号を追跡できるウェブアプリを作成したいと考えています。私はまた、生徒が現在持っている、または時間をかけて開発したスキルのリストとともに、レッスンで調べた情報の記録を作成できるようにしたいと考えています。 [支払いの処理] をクリックし、請求書のコピーを生徒と私自身に電子メールで送信します。生徒の記録を維持するために、各レッスンの後に編集ボタンを使用して情報を更新します。

EXTjs をプレゼンテーション レイヤーとして使用し、PHP をアウト ロジック レイヤーとして使用し、mySQL をデータベースとして使用する必要があります。

グリッドとページのレイアウトを設定できることに、かなりの自信を持っています。ただし、生徒が次のレッスンを受ける予定の日付を確実に生成できるか心配です (たとえば、今日が 4 月 8 日で、この生徒の次のクラスは 4 月 15 日、次に 22 日など)。

PHPコードをまだ開始していません。学生が開始した日付に基づいて、やりたいことをどのように行うか本当にわからないので、誰かが私を正しい方向に向けることができるかどうか疑問に思っています。

私のデータベースコードを以下に示します。

use mydatabase;

drop table teacher;
drop table student; 
drop table payment;
drop table skills;
drop table TeacherTrainingLog; 
drop table StudentTrainingLog;


CREATE TABLE teacher
    (TeacherID int,
    TeacherLast varchar(30), 
    TeacherFirst varchar(30),
    TeacherEmail varchar(254),
    TeacherDOB date, 
    TeacherAddress varchar(50), 
    TeacherCity varchar(30), 
    TeacherState char(2), 
    TeacherZip varchar(10), 
    TeacherPhone varchar(12), 
    TeacherUserId varchar(50), 
    TeacherPassword varchar(15));
alter table teacher add constraint TeacherPK primary key (TeacherID); 


CREATE TABLE student
    (StudentID int,
    StudentLast varchar(30), 
    StudentFirst varchar(30),
    StudentEmail varchar(254),
    DateStarted date, 
    StudentDOB date,
    MusicInterest text, 
    StudentAddress varchar(50), 
    StudentCity varchar(30), 
    StudentState char(2), 
    StudentZip varchar(10), 
    StudentPhone varchar(12), 
    StudentUserId varchar(50), 
    StudentPassword varchar(15),
    TeacherID int);
alter table student add constraint StudentPK primary key (StudentID); 
alter table student add constraint TeacherFK foreign key (TeacherID) references teacher(TeacherID);



CREATE TABLE payment
    (PaymentID int,
    PaymentDueDate date,
    PaymentAmount int,
    TeacherID int,
    StudentID int);
alter table payment add constraint PaymentPK primary key (PaymentID); 
alter table payment add constraint TeacherFK foreign key (TeacherID) references teacher(TeacherID);
alter table payment add constraint StudentFK foreign key (StudentID) references student(StudentID);


CREATE TABLE skills
    (SkillID int,
    SkillName varchar(30));
alter table skills add constraint SkillPK primary key (SkillID);


CREATE TABLE TeacherTrainingLog
    (TeacherID int,
    SkillID int,
    TeacherDateStarted date,
    Teacherlevel int,
    TeacherTrainingNotes text);
alter table TeacherTrainingLog add constraint TeachIDfk foreign key (TeacherID) references teacher (TeacherID); 
alter table TeacherTrainingLog add constraint SkillIDfk foreign key (SkillID) references skills (SkillID); 
alter table TeacherTrainingLog add constraint TeacherTraingingLogPK primary key (TeacherID, SkillID); 

CREATE TABLE StudentTrainingLog
    (StudentID int,
    SkillID int,
    StudentDateStarted date,
    Studentlevel int,
    StudentTrainingNotes text);
alter table StudentTrainingLog add constraint StudentIDfk foreign key (StudentID) references student (StudentID); 
alter table StudentTrainingLog add constraint SkillIDfk foreign key (SkillID) references skills (SkillID); 
alter table StudentTrainingLog add constraint StudentTraingingLogPK primary key (StudentID, SkillID); 



insert into teacher values (1, 'Bob', 'Joe','teacher.troxy@gmail.com','1988/5/4', '1120 Sweet St.', 'Boulder', 'CO', '55555', '555-555-5555','capn', 'crunch');

insert into student values (1, 'Joey', 'Bobby','student.troxy@gmail.com','2013/4/8', '1988/9/12', 'Led Zepplin, Taylor Swift', '2120 Garbage Can Ln', 'Boulder', 'CO', '55555', '333-333-333','student1', 

'first', 1);

insert into skills values (1, 'Chord');
insert into skills values (2, 'Strumming');
insert into skills values (3, 'Alternate Picking');
insert into skills values (4, 'Bend');
insert into skills values (5, 'Bend/Release');
insert into skills values (6, 'Hammer-on');
insert into skills values (7, 'Pull-off');
insert into skills values (8, 'Slide');
insert into skills values (9, 'Vibrato');
insert into skills values (10, 'Tapping');
insert into skills values (11, 'Natural Harmonic');
insert into skills values (12, 'Pinch Harmonic');
insert into skills values (13, 'Sweep Picking');
insert into skills values (14, 'Finger Picking');

あなたが私に与えることができるどんな助けにも感謝します. これがあいまいではないことを願っています。わかる範囲で説明してみました。

4

2 に答える 2

1

レッスンが開始日から毎週行われると仮定すると、MySQL で次のようなことを実行して、開始日から次のレッスンを取得できます。

SELECT DATE_ADD(DateStarted, INTERVAL 7 DAY) FROM `StudentID` WHERE StudentID = ?;

しかし、あなたが本当に望んでいるのは、特定の生徒が次のレッスンがいつなのかを知ることです。おそらく開始日に依存せず、レッスンの曜日/時間は人々のスケジュールに応じて変化するため、StudentID で関連付けられたレッスンの日付/時間を db テーブルにすることをお勧めします。フォームを使用して生徒を選択し、日付範囲とレッスンの日時を入力して [Go] をクリックすると、PHP スクリプトがレッスンの日付をテーブルに入力します。...または手で入力することもできます。

于 2013-04-09T01:57:55.373 に答える
0

間隔が決まっている場合は、生徒ごとに平日と授業時間を空けてみてはいかがでしょうか。

「lession」という新しいテーブルを作成し、生徒 ID と教師 ID を関連付けます。各行には、レッスン ID、生徒 ID、教師 ID、曜日、および時間が含まれます。

于 2013-04-09T01:58:11.673 に答える