Database Design for an Online Course Website

  Рет қаралды 5,677

Database Star

Database Star

Күн бұрын

Пікірлер: 73
@DatabaseStar
@DatabaseStar 6 күн бұрын
Bonus PDF: This ERD, descriptions of each table and column with sample data, and SQL scripts to create all of the tables on your own database: www.databasestar.com/dbdesign/?
@roninspect4357
@roninspect4357 11 ай бұрын
i struggle a lot designing a database. These videos are really helpful.
@DatabaseStar
@DatabaseStar 11 ай бұрын
Glad you like them!
@judaperez681
@judaperez681 6 ай бұрын
I was exploring your youtube content... NEW SUB!
@DatabaseStar
@DatabaseStar 6 ай бұрын
Thanks! Glad you like it.
@Alfenijonas
@Alfenijonas 8 ай бұрын
Just leaving a comment so that more people might see this. Let's go DB fellows. :D
@DatabaseStar
@DatabaseStar 7 ай бұрын
Thanks!
@felipemfrudeli
@felipemfrudeli Жыл бұрын
you videos help me a lot. Im trying to start learning database design, and this channel is the best channel I can find, thx for videos, can you make a video about testing performance of database? (like put random data and stress)
@DatabaseStar
@DatabaseStar Жыл бұрын
Good to hear! Sure, I can make a video on that. Is there anything specific you want to know or see with testing the performance of a database?
@lovetheentertainment9949
@lovetheentertainment9949 11 ай бұрын
We need database design for cricket management along with their contracts, clubs, domestic structure etc
@DatabaseStar
@DatabaseStar 11 ай бұрын
Good idea! I have a "sports league" on my list of future topics so I'll create one specific for cricket.
@lovetheentertainment9949
@lovetheentertainment9949 11 ай бұрын
@@DatabaseStar I hope it will be your next video.
@judaperez681
@judaperez681 6 ай бұрын
The video I was looking for
@DatabaseStar
@DatabaseStar 6 ай бұрын
Good to hear!
@hodadisbirhan652
@hodadisbirhan652 2 ай бұрын
The Quize should be related with the lesson so lesson is attached with module and then module with course , so we can know quize found in the course which is easy
@DatabaseStar
@DatabaseStar 2 ай бұрын
That approach can work as well, but it would mean the quiz would only relate to content from that lesson and not a module.
@walkingradiance9556
@walkingradiance9556 2 ай бұрын
I think the column should be price, not price_usd. There could be a document saying the price is in USD. In addition, you could add this information to a comment on table or comment on column using SQL comment keyword.
@DatabaseStar
@DatabaseStar 2 ай бұрын
Great point. It would be better as price as you mentioned and either of the approaches you mentioned could work.
@Aacadian-xe8kq
@Aacadian-xe8kq Жыл бұрын
Amazing content, thank you for this upload 👍👍👍
@DatabaseStar
@DatabaseStar Жыл бұрын
Glad you enjoyed it!
@naveenchandpandey7940
@naveenchandpandey7940 4 ай бұрын
Great video. Just a question I had about this. How are you capturing the progress of a student for restricting him from going to the next session before completing the current lesson. You have used is_progress_limited but till which point the student is allowed to access is not available i guess. Can you explain it a bit?
@DatabaseStar
@DatabaseStar 4 ай бұрын
Thanks! Good question. In the student_lesson table there is a completed_datetime field which captures the date and time that a student has completed a lesson. If the course has a valuen of TRUE for is_progress_limited, then perhaps the application can determine which lessons the student has completed, and then only allow them to complete the next lesson. So, if the student has completed 8 lessons, the application can show that these 8 lessons are completed, and allow the student to watch lesson 9, but lessons 10 onwards are locked.
@naveenchandpandey7940
@naveenchandpandey7940 4 ай бұрын
@@DatabaseStar Thank you very much for the quick response.
@vannakvy9109
@vannakvy9109 4 ай бұрын
Thanks for the great video.
@DatabaseStar
@DatabaseStar 4 ай бұрын
Glad you liked it!
@walkingradiance9556
@walkingradiance9556 2 ай бұрын
You could store the actual video if you're using BLOBS binary large objects in something like Oracle where its capped at 4GB I think. I'm not sure how KZbin handles their videos if they have them in a database or what. I think MySQL also has BLOBS like large BLOB, medium BLOB, etc. I think it would be a good idea to store the actual video. If the video isn't too long and is usually short say less than 30 minutes, then this could be reasonable.
@DatabaseStar
@DatabaseStar 2 ай бұрын
Good idea, yeah it could be stored in the actual column as a BLOB.
@walkingradiance9556
@walkingradiance9556 2 ай бұрын
Synonyms for module include section, chapter, etc.
@DatabaseStar
@DatabaseStar 2 ай бұрын
Thanks for sharing!
@dway89
@dway89 11 ай бұрын
Exactly what was looking for
@DatabaseStar
@DatabaseStar 11 ай бұрын
Thanks!
@julionunes2092
@julionunes2092 9 ай бұрын
I think the quiz should be related to the module instead of the course. By relating the quiz to the course, you won't be able to set the quiz in a specific module. One module may have one or more lecture and/or one or more quizzes.
@DatabaseStar
@DatabaseStar 9 ай бұрын
That's a good point. We can change it to relate the quiz to a module.
@theprivterao
@theprivterao 7 ай бұрын
You miss the review table in this Diagram and also course category is also important
@DatabaseStar
@DatabaseStar 7 ай бұрын
That’s true, we can add those concepts into this diagram to add those features.
@yunmulu1659
@yunmulu1659 21 күн бұрын
Thanks for the lesson
@DatabaseStar
@DatabaseStar 19 күн бұрын
You're welcome!
@abdo_alaa10
@abdo_alaa10 2 ай бұрын
thanks you so much sir for this great explanation , but i have one question here - why we didn't add completed_datetime column to the course table?
@DatabaseStar
@DatabaseStar 2 ай бұрын
Good question. We could determine that a course is completed if all lessons in the course are completed, so I didn't add it. But we could add that to the course table, and update it when the last lesson is completed.
@abdo_alaa10
@abdo_alaa10 2 ай бұрын
@@DatabaseStar thanks sir , now i understand it well
@longn.8804
@longn.8804 11 ай бұрын
Hello Ben. Thanks for your video. It's very helpful and awesome. I've got a question for you: In each table, there is a PK usually being "id", e.g. the "Course" table has the "id" field and the "Student" table has another "id" field. I totally understand that these "id" fields specifically refer to their corresponding tables. However, does it make duplicate field names (as far as I read somewhere)? Should we keep them identical like that (all "id" fields) or should we make them unique, for example, student_id in the Students table, course_id in the Course table, etc.? Thank you in advance.
@DatabaseStar
@DatabaseStar 11 ай бұрын
Thanks, I'm glad you like the video! Good question. The main problem I see with having all fields called "id" (like I usually do) is that if you select from multiple tables, then there will be many ID fields shown and it can be hard to see what the ID represents (e.g. is the lesson ID or the course ID). You can use column aliases to work around this. Using a more descriptive column name, such as student_id or course_id as you suggested, is another approach - and I think it's probably the better approach as it's clearer what it represents in large queries and it matches the foreign key names. I didn't use this approach in this design but perhaps I should in future designs. I would suggest being consistent though - pick one approach and use it throughout your design.
@longn.8804
@longn.8804 11 ай бұрын
@@DatabaseStar Thanks for your explanation! Appreciate it!
@mikhailsandigan1424
@mikhailsandigan1424 11 ай бұрын
Please make for an insurance website it would be really helpful.😊
@DatabaseStar
@DatabaseStar 11 ай бұрын
Good idea!
@omauret
@omauret 11 ай бұрын
Your video is excellent; it's exactly what I was looking for. Currently, I'm working on an e-learning platform, and I'd like to know how to create the admin section and a table for the teacher. On my platform, there are paywalls to allow students access via a monthly or annual subscription. How can I develop this section, and what suggestions do you have to implement it?
@DatabaseStar
@DatabaseStar 11 ай бұрын
Thanks! I don't have any specific suggestions, but I would say you can try to list down your requirements as sentences and then update the database design. For example, "a course has a teacher, and a teacher can teach many courses". This may mean you have a teacher table, and a foreign key from the course table to the teacher table.
@CynicalSaint48
@CynicalSaint48 9 ай бұрын
Thanks for the videos! Question I have never been able to find an answer to: Many simple tables versus Few complex tables. In this design, a 10 question quiz would have a Quiz table, 10 question tables, 10 correct answer tables, and 30 wrong answer tables. This results in 51 total tables in the database for a single quiz. Alternately, the quiz table could contain fields for the question id, question text, correct answer and 3 wrong answers, and then that table would have 10 entries. I am curious whether there are benefits of one or the other, or if it is just down to preference? Thanks again!
@DatabaseStar
@DatabaseStar 9 ай бұрын
Good question! If you have a quiz with 10 questions, you would only need the three tables: one for quiz, one for quiz_question, and one for quiz_answer. Each table should usually represent an object or entity, so you shouldn't need 10 different question tables - you would have 1 table for all 10 questions. Same for answers: you could have 1 answer table to contain all answers, and an indicator to show if it is correct or not. Generally fewer tables is better, but there needs to be enough so that the data quality is maintained and it's easy to make changes in one place.
@CynicalSaint48
@CynicalSaint48 8 ай бұрын
@@DatabaseStar Thanks, I follow now. Think I was just a bit thrown by the Lucid representation of the tables. Thanks for answering the many versus few tables question too!
@celloucisse7548
@celloucisse7548 3 ай бұрын
Million thanks to you for this video. For sure, I haven't really understand the concept of "number" and "course_number". would you like to me make clear for me plz ?!!
@DatabaseStar
@DatabaseStar 3 ай бұрын
Sure! Those numbers are to be displayed on the screen, so the person taking the course (the student) can see things like "Lesson 4" or "Quiz 2". They can also be used to sort the list of lessons or quizzes.
@farhadeviltrg6116
@farhadeviltrg6116 Жыл бұрын
Nice job👌
@DatabaseStar
@DatabaseStar Жыл бұрын
Thanks!
@kane_lives
@kane_lives 11 ай бұрын
Glad you're still making the videos, Ben. Happy to leave a comment just to help you with YT's algorithms.
@DatabaseStar
@DatabaseStar 11 ай бұрын
Thanks! Yeah still making videos, and will be for a while I think!
@jsnow07grad
@jsnow07grad 3 ай бұрын
very helpful
@DatabaseStar
@DatabaseStar 3 ай бұрын
Thank you!
@gershonsamwoode2334
@gershonsamwoode2334 Жыл бұрын
Amazing. Thank you
@DatabaseStar
@DatabaseStar Жыл бұрын
Glad you liked it!
@DuyNguyen-ti1ky
@DuyNguyen-ti1ky Жыл бұрын
How can I get the pdf file which contains full content and diagram?
@DatabaseStar
@DatabaseStar Жыл бұрын
It's on the page mentioned in the description: www.databasestar.com/dbdesign/
@Jackolltradez
@Jackolltradez 11 ай бұрын
I have a question please, wouldn't that join table have a primary key?
@DatabaseStar
@DatabaseStar 11 ай бұрын
Yes, the joining tables could have a primary key to ensure they can be easily referenced and ensure they are unique. This could either be a combination of both FK columns, or a separate ID column.
@Jackolltradez
@Jackolltradez 11 ай бұрын
@@DatabaseStar Thank you.
@walkingradiance9556
@walkingradiance9556 2 ай бұрын
Does the number go up or cycle? For example, if you have a module/section with 5 lessons, then a module/section with 4 lessons, would the lesson's be numbered 1 2 3 4 5, 6 7 8 9, or 1 2 3 4 5, 1 2 3 4?
@DatabaseStar
@DatabaseStar 2 ай бұрын
I think it would go up and not cycle, but it would work both ways and depend on who would populate the data for the courses.
@walkingradiance9556
@walkingradiance9556 2 ай бұрын
small thing--I think it's spelled enrollment, not enrolment.
@DatabaseStar
@DatabaseStar 2 ай бұрын
Thanks, yeah in American English it’s enrollment but in Australian and British English (I’m in Australia) it’s enrolment.
@sumonsarkar791
@sumonsarkar791 7 ай бұрын
@DatabaseStar
@DatabaseStar 7 ай бұрын
Thanks!
@viveksankapal5877
@viveksankapal5877 12 күн бұрын
my project is online learning platform give me database
@DatabaseStar
@DatabaseStar 12 күн бұрын
That’s what this video is about!
How to Design a Database for AirBNB
18:47
Database Star
Рет қаралды 7 М.
7 Database Design Mistakes to Avoid (With Solutions)
11:29
Database Star
Рет қаралды 87 М.
Don't underestimate anyone
00:47
奇軒Tricking
Рет қаралды 18 МЛН
If people acted like cats 🙀😹 LeoNata family #shorts
00:22
LeoNata Family
Рет қаралды 18 МЛН
How to Fight a Gross Man 😡
00:19
Alan Chikin Chow
Рет қаралды 15 МЛН
Database Design for a Train Booking System
12:36
Database Star
Рет қаралды 9 М.
Database Design for School Students for an Entire School
18:34
Database Star
Рет қаралды 28 М.
I Discovered The Perfect ChatGPT Prompt Formula
6:27
Skill Leap AI
Рет қаралды 1 МЛН
How to Design a Database
10:57
Database Star
Рет қаралды 71 М.
Basic System Design for Uber or Lyft | System Design Interview Prep
16:18
UUID vs INT: What’s Better For Your Primary Key?
9:40
Database Star
Рет қаралды 57 М.
Database Design for Chat Application
10:01
Database Star
Рет қаралды 66 М.
How to Correctly Define Many-To-Many Relationships in Database Design
7:07
Database Design for Real Estate Company
16:02
Database Star
Рет қаралды 7 М.
Don't underestimate anyone
00:47
奇軒Tricking
Рет қаралды 18 МЛН