Я разрабатываю сайт, который будет сервисом на основе подписки, который предоставит пользователям несколько курсов (видео) на основе того, за что они подписались.Эффективный совет mysql db advice
В настоящее время я рассматривал следующую структуру БД
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 глав в один курс.
Немного информации об аутентификационном процессе - это будет идти пользовательский логин ---> подписка на курс ---> главы курса. Если оба пользователя и подписка на курс будут проверены на адрес электронной почты. Перед воспроизведением видео также будут проверяться в отношении таблицы подписки.
Мои вопросы:
- Является ли это лучший способ структурировать это? Или есть лучшие альтернативы?
- Это может вызвать проблемы с точки зрения производительности? Или это не будет заметно?
Вот пример скрипта PHP, что я буду использовать для проверки подлинности и заполнения HTML
$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"
}
}
}
}
Приведенный выше код для меню, которое будет заполнять список глав на основе их подписки , Я знаю, что код не идеальный, я все еще работаю над этим, но я хотел сначала прикрепить структуру db, когда у меня есть довольно приличное представление о том, как я буду получать доступ к этой информации.
Короче говоря, ** НЕТ, это не очень хорошая схема. ** –