我正在开发一个基于订阅的服务的网站,它将根据用户注册的内容为用户提供几门课程(视频)。
目前我正在考虑以下数据库结构
Users
------
email | pwd | subscription_date | expiration_date
唯一键是“电子邮件”
Course_Subscription
-------
email | calculus_1 | calculus_2 | physics_1 | physics_2 ... | Nth course
提供的课程数量可能会从大约 15 个开始,并逐渐增加加班时间。课程订阅也将是 TRUE/FALSE 的布尔值
然后每个课程的表格如下:
Calculus_1
----------
id | title | description | video_url |
单门课程可能有 20 多个章节。
有关身份验证过程的一些信息 - 它将进入用户登录 ---> 课程订阅 ---> 课程章节。用户登录和课程订阅都将根据电子邮件地址进行验证。在播放视频之前,还将根据订阅表检查视频。
我的问题是:
- 这是构建它的最佳方法吗?还是有更好的选择?
- 这会导致性能方面的任何问题吗?还是不会引起注意?
这是我将用于验证和填充 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"
}
}
}
}
上面的代码用于将根据订阅填充章节列表的菜单。我知道代码并不完美,我仍在努力——但我想首先确定数据库的结构,因为我对如何访问信息有了相当不错的了解。