Lately I’ve been developing some new (and old) things with my lesson materials. This was caused by recently becoming a private tutor again.
First, I got some online students through a friend with a connection to these students in Taiwan. I redesigned the lesson structure and content somewhat to be more appropriate for 1-on-1 and for communication skill teaching. It follows more of a hierarchical outline structure rather than the often stream-of-consciousness style of the free group class content (for example, where the main ideas are not always logically connected but juxtapose for poetic value). With the private tutoring students, I wanted to have them produce spoken presentations which have logical structure.
Then I got a private student who I teach in-person, and I began looking at the old card system I used to use for in-person in Danang. I had stopped working on it around 2020 when I stopped teaching in-person. Well, I looked at the old cards and some videos I had made in the past, and I redesigned the card system. The new design preserves the underlying design and content, while being simpler and more intuitive. I enjoy using it. My student likes it too.

But now I’m not sure if the different design paths are different entities for data storage. The cards and the new slides, which are for private tutoring and have more of the logical communication skills teaching focus, use only 5 pictures including the sidebar. However, the slides that I have been creating for the last year plus, which is more for group social interaction, has up to 6 unique pictures.
I partly feel that the different paths should all be composed of the same parts: 1 title, 4 text strings, 5 images. That way, they are all interchangeable for different contexts and can simply be reformatted to a different template.
However, another part of me feels that in reality they are different entities because they have different functions. At least for many of the free group class lessons, they couldn’t be used to teach communication skills for private tutoring because of the fact they are written as poems rather than educational content.
So if they are different entities, what implications for how the data is stored? I think that my current database design would accommodate the differences. All lessons can be stored in the same table, and each has a different value in the ‘version’ column. In a templates table, each template can be related to versions. The lessons table would have some empty space though, where lessons don’t have a sixth photo. This could be solved either by storing the text and images in a single json field, or by storing image paths in a separate ‘images’ table which relates to a ‘text’ table. Actually, I think I like the second option better.
edit I remembered that the card system takes many more text fields because it contains the outline for the reading as well as the reading itself. This raises the question of, if there can be slight differences in the fields for different versions, then there could be bigger differences. If I design a very different format later on (for example with a different number of text fields), then it wouldn’t fit well in the same text table with the other formats. Instead, a JSON field in a lessons table allows for more flexibility in future design changes.
Also, the JSON format would not hardcode the relationship between images and text, since the image path would be used. The images themselves would be in a folder, and the path to a single image may appear in multiple records’ JSON fields.
Finally, the JSON format is similar to what I am doing already, with the text file. I usually create a lesson in a text file and then transfer the text strings to multiple columns in the lessons table.