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/?
@roninspect435711 ай бұрын
i struggle a lot designing a database. These videos are really helpful.
@DatabaseStar11 ай бұрын
Glad you like them!
@judaperez6816 ай бұрын
I was exploring your youtube content... NEW SUB!
@DatabaseStar6 ай бұрын
Thanks! Glad you like it.
@Alfenijonas8 ай бұрын
Just leaving a comment so that more people might see this. Let's go DB fellows. :D
@DatabaseStar7 ай бұрын
Thanks!
@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 Жыл бұрын
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?
@lovetheentertainment994911 ай бұрын
We need database design for cricket management along with their contracts, clubs, domestic structure etc
@DatabaseStar11 ай бұрын
Good idea! I have a "sports league" on my list of future topics so I'll create one specific for cricket.
@lovetheentertainment994911 ай бұрын
@@DatabaseStar I hope it will be your next video.
@judaperez6816 ай бұрын
The video I was looking for
@DatabaseStar6 ай бұрын
Good to hear!
@hodadisbirhan6522 ай бұрын
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
@DatabaseStar2 ай бұрын
That approach can work as well, but it would mean the quiz would only relate to content from that lesson and not a module.
@walkingradiance95562 ай бұрын
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.
@DatabaseStar2 ай бұрын
Great point. It would be better as price as you mentioned and either of the approaches you mentioned could work.
@Aacadian-xe8kq Жыл бұрын
Amazing content, thank you for this upload 👍👍👍
@DatabaseStar Жыл бұрын
Glad you enjoyed it!
@naveenchandpandey79404 ай бұрын
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?
@DatabaseStar4 ай бұрын
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.
@naveenchandpandey79404 ай бұрын
@@DatabaseStar Thank you very much for the quick response.
@vannakvy91094 ай бұрын
Thanks for the great video.
@DatabaseStar4 ай бұрын
Glad you liked it!
@walkingradiance95562 ай бұрын
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.
@DatabaseStar2 ай бұрын
Good idea, yeah it could be stored in the actual column as a BLOB.
@walkingradiance95562 ай бұрын
Synonyms for module include section, chapter, etc.
@DatabaseStar2 ай бұрын
Thanks for sharing!
@dway8911 ай бұрын
Exactly what was looking for
@DatabaseStar11 ай бұрын
Thanks!
@julionunes20929 ай бұрын
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.
@DatabaseStar9 ай бұрын
That's a good point. We can change it to relate the quiz to a module.
@theprivterao7 ай бұрын
You miss the review table in this Diagram and also course category is also important
@DatabaseStar7 ай бұрын
That’s true, we can add those concepts into this diagram to add those features.
@yunmulu165921 күн бұрын
Thanks for the lesson
@DatabaseStar19 күн бұрын
You're welcome!
@abdo_alaa102 ай бұрын
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?
@DatabaseStar2 ай бұрын
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_alaa102 ай бұрын
@@DatabaseStar thanks sir , now i understand it well
@longn.880411 ай бұрын
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.
@DatabaseStar11 ай бұрын
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.880411 ай бұрын
@@DatabaseStar Thanks for your explanation! Appreciate it!
@mikhailsandigan142411 ай бұрын
Please make for an insurance website it would be really helpful.😊
@DatabaseStar11 ай бұрын
Good idea!
@omauret11 ай бұрын
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?
@DatabaseStar11 ай бұрын
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.
@CynicalSaint489 ай бұрын
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!
@DatabaseStar9 ай бұрын
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.
@CynicalSaint488 ай бұрын
@@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!
@celloucisse75483 ай бұрын
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 ?!!
@DatabaseStar3 ай бұрын
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 Жыл бұрын
Nice job👌
@DatabaseStar Жыл бұрын
Thanks!
@kane_lives11 ай бұрын
Glad you're still making the videos, Ben. Happy to leave a comment just to help you with YT's algorithms.
@DatabaseStar11 ай бұрын
Thanks! Yeah still making videos, and will be for a while I think!
@jsnow07grad3 ай бұрын
very helpful
@DatabaseStar3 ай бұрын
Thank you!
@gershonsamwoode2334 Жыл бұрын
Amazing. Thank you
@DatabaseStar Жыл бұрын
Glad you liked it!
@DuyNguyen-ti1ky Жыл бұрын
How can I get the pdf file which contains full content and diagram?
@DatabaseStar Жыл бұрын
It's on the page mentioned in the description: www.databasestar.com/dbdesign/
@Jackolltradez11 ай бұрын
I have a question please, wouldn't that join table have a primary key?
@DatabaseStar11 ай бұрын
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.
@Jackolltradez11 ай бұрын
@@DatabaseStar Thank you.
@walkingradiance95562 ай бұрын
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?
@DatabaseStar2 ай бұрын
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.
@walkingradiance95562 ай бұрын
small thing--I think it's spelled enrollment, not enrolment.
@DatabaseStar2 ай бұрын
Thanks, yeah in American English it’s enrollment but in Australian and British English (I’m in Australia) it’s enrolment.
@sumonsarkar7917 ай бұрын
❤
@DatabaseStar7 ай бұрын
Thanks!
@viveksankapal587712 күн бұрын
my project is online learning platform give me database