사용자가 가입 한 모든 것을 기반으로 여러 코스 (비디오)를 제공하는 가입 기반 서비스가 될 사이트를 개발 중입니다. 효율적인 mysql db 구조 조언
은 현재 내가Users
------
email | pwd | subscription_date | expiration_date
고유 키가 될 것이다 다음과 같은 DB 구조에게 "이메일"을 고려하고
Course_Subscription
-------
email | calculus_1 | calculus_2 | physics_1 | physics_2 ... | Nth course
아마에서 약 15을 시작하고 점차적으로 초과 근무를 증가 제공 과정의 수.
이Calculus_1
----------
id | title | description | video_url |
하나의 과정에서 20 개 이상의 지부가있을 수 다음과 같이 또한 코스 구독은 각 과정에 대한 다음
테이블 FALSE TRUE의 부울 값 /됩니다.
인증 프로세스에 대한 약간의 정보 - 사용자 로그인 ---> 과정 구독 ---> 과정 장. 사용자 로그인과 코스 가입이 이메일 주소와 비교하여 확인됩니다. 비디오는 재생되기 전에 구독 테이블과 대조하여 확인됩니다.
내 질문은 :
- 이이를 구성하는 가장 좋은 방법이 있나요? 아니면 더 나은 대안이 있습니까?
- 성능면에서 문제가 있습니까? 아니면 눈에 띄지 않을까요? 여기
내가 인증하고 위의 코드는 구독을 기반 챕터의 목록을 채울 메뉴입니다 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"
}
}
}
}
을 채우는 데 사용할 PHP 스크립트의 샘플입니다 . 나는 코드가 완벽하지 않다는 것을 안다, 나는 여전히 그것에 대해 연구하고있다. 그러나 나는 정보에 어떻게 접근 할 것인지에 대한 꽤 괜찮은 아이디어가 있기 때문에 먼저 db의 구조를 정돈하려고했다.
간단히 말해서 ** 이것은 좋은 스키마가 아닙니다. ** –