Database Design for an Online Course Website

Sdílet
Vložit
  • čas přidán 7. 09. 2024

Komentáře • 65

  • @judaperez681
    @judaperez681 Před 3 měsíci +4

    I was exploring your youtube content... NEW SUB!

  • @roninspect4357
    @roninspect4357 Před 9 měsíci +3

    i struggle a lot designing a database. These videos are really helpful.

  • @Alfenijonas
    @Alfenijonas Před 5 měsíci +2

    Just leaving a comment so that more people might see this. Let's go DB fellows. :D

  • @walkingradiance9556
    @walkingradiance9556 Před 11 dny +1

    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  Před 10 dny

      Great point. It would be better as price as you mentioned and either of the approaches you mentioned could work.

  • @hodadisbirhan652
    @hodadisbirhan652 Před dnem

    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  Před dnem

      That approach can work as well, but it would mean the quiz would only relate to content from that lesson and not a module.

  • @felipemfrudeli
    @felipemfrudeli Před 9 měsíci +1

    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  Před 9 měsíci +1

      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?

  • @vannakvy9109
    @vannakvy9109 Před 2 měsíci +2

    Thanks for the great video.

  • @Aacadian-xe8kq
    @Aacadian-xe8kq Před 9 měsíci +2

    Amazing content, thank you for this upload 👍👍👍

  • @walkingradiance9556
    @walkingradiance9556 Před 11 dny +1

    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 CZcams 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  Před 10 dny

      Good idea, yeah it could be stored in the actual column as a BLOB.

  • @lovetheentertainment9949
    @lovetheentertainment9949 Před 9 měsíci +3

    We need database design for cricket management along with their contracts, clubs, domestic structure etc

    • @DatabaseStar
      @DatabaseStar  Před 9 měsíci +2

      Good idea! I have a "sports league" on my list of future topics so I'll create one specific for cricket.

    • @lovetheentertainment9949
      @lovetheentertainment9949 Před 9 měsíci +1

      @@DatabaseStar I hope it will be your next video.

  • @judaperez681
    @judaperez681 Před 3 měsíci +2

    The video I was looking for

  • @naveenchandpandey7940
    @naveenchandpandey7940 Před měsícem +2

    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  Před měsícem +1

      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 Před měsícem

      @@DatabaseStar Thank you very much for the quick response.

  • @walkingradiance9556
    @walkingradiance9556 Před 11 dny

    Synonyms for module include section, chapter, etc.

  • @theprivterao
    @theprivterao Před 4 měsíci

    You miss the review table in this Diagram and also course category is also important

    • @DatabaseStar
      @DatabaseStar  Před 4 měsíci

      That’s true, we can add those concepts into this diagram to add those features.

  • @julionunes2092
    @julionunes2092 Před 7 měsíci +1

    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  Před 7 měsíci

      That's a good point. We can change it to relate the quiz to a module.

  • @kane_lives
    @kane_lives Před 9 měsíci

    Glad you're still making the videos, Ben. Happy to leave a comment just to help you with YT's algorithms.

    • @DatabaseStar
      @DatabaseStar  Před 9 měsíci

      Thanks! Yeah still making videos, and will be for a while I think!

  • @CynicalSaint48
    @CynicalSaint48 Před 6 měsíci

    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  Před 6 měsíci

      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 Před 6 měsíci

      @@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 Před měsícem

    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  Před 27 dny +1

      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.

  • @dway89
    @dway89 Před 9 měsíci

    Exactly what was looking for

  • @jsnow07grad
    @jsnow07grad Před 17 dny

    very helpful

  • @walkingradiance9556
    @walkingradiance9556 Před 11 dny

    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  Před 10 dny

      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.

  • @omauret
    @omauret Před 9 měsíci

    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  Před 9 měsíci +2

      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.

  • @longn.8804
    @longn.8804 Před 8 měsíci +1

    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  Před 8 měsíci +1

      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 Před 8 měsíci

      @@DatabaseStar Thanks for your explanation! Appreciate it!

  • @farhadeviltrg6116
    @farhadeviltrg6116 Před 9 měsíci +1

    Nice job👌

  • @walkingradiance9556
    @walkingradiance9556 Před 11 dny

    small thing--I think it's spelled enrollment, not enrolment.

    • @DatabaseStar
      @DatabaseStar  Před 10 dny

      Thanks, yeah in American English it’s enrollment but in Australian and British English (I’m in Australia) it’s enrolment.

  • @Jackolltradez
    @Jackolltradez Před 9 měsíci

    I have a question please, wouldn't that join table have a primary key?

    • @DatabaseStar
      @DatabaseStar  Před 9 měsíci +1

      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 Před 9 měsíci

      @@DatabaseStar Thank you.

  • @mikhailsandigan1424
    @mikhailsandigan1424 Před 9 měsíci

    Please make for an insurance website it would be really helpful.😊

  • @gershonsamwoode2334
    @gershonsamwoode2334 Před 9 měsíci

    Amazing. Thank you

  • @DuyNguyen-ti1ky
    @DuyNguyen-ti1ky Před 9 měsíci +1

    How can I get the pdf file which contains full content and diagram?

    • @DatabaseStar
      @DatabaseStar  Před 9 měsíci +1

      It's on the page mentioned in the description: www.databasestar.com/dbdesign/

  • @sumonsarkar791
    @sumonsarkar791 Před 5 měsíci