ユーザーがサインアップしたものに基づいて、いくつかのコース (ビデオ) をユーザーに提供するサブスクリプション ベースのサービスとなるサイトを開発しています。
現在、次のdb構造を検討していました
Users
------
email | pwd | subscription_date | expiration_date
一意のキーは「email」になります
Course_Subscription
-------
email | calculus_1 | calculus_2 | physics_1 | physics_2 ... | Nth course
提供されるコースの数は、おそらく約 15 から始まり、時間の経過とともに徐々に増加します。また、コースのサブスクリプションは TRUE/FALSE のブール値になります
次に、次のように各コースの表を示します。
Calculus_1
----------
id | title | description | video_url |
1 つのコースに 20 以上のチャプターがある場合もあります。
認証プロセスに関するちょっとした情報 - userlogin ---> course subscription ---> course chapters に移動します。ユーザーのログインとコースのサブスクリプションの両方がメールアドレスに対して検証される場所。ビデオは、再生前にサブスクリプション テーブルに対してもチェックされます。
私の質問は次のとおりです。
- これはこれを構造化するための最良の方法ですか?または、より良い代替手段はありますか?
- これにより、パフォーマンスの面で問題が発生しますか? それとも目立たなくなるのでしょうか?
これは、html を認証して入力するために使用する php スクリプトのサンプルです。
$sqlSubscription = "SELECT * FROM course_subscription WHERE `user` = $user && `calculus_1` = TRUE";
$subscriptionResult = mysql_query($sql) or mysql_die($sqlSubscription);
while ($row = mysql_fetch_assoc($subscriptionResult))
{
$user=$row["email"];
$calculus_1 =$row["calculus_1"];
if($user==1 && calculus_1==TRUE)
{
$sql = "SELECT * FROM calculus_1 ORDER BY `id`";
$result = mysql_query($sql) or mysql_die($sql);
if (mysql_num_rows($result) > 0)
{
$data = array();
while ($row = mysql_fetch_assoc($result))
{
$data[] = $rows;
echo "HTML THAT WILL CREATE A LIST BASED ON TABLE INFO"
}
}
}
}
上記のコードは、サブスクリプションに基づいてチャプターのリストを作成するメニュー用です。私はコードが完璧ではないことを知っています.私はまだそれに取り組んでいます.