I have built an attendance app but it takes up too many rows

In my attendance app it works great, but it consumes a lot of rows.

Basically I have an attendance table that has the following columns (Student ID, Date ID, Class ID, Attendance Status( Present/Absent/Tardy))

So the issue is the attendance table grows very quickly for example (30 students x 10 classes x 180 days in a school year) = 54,000 records

Is there a better way to structure an attendance tracker to be more efficient? But building the table this way I can display all the classes a student was present, what students attended a class, etc.
I considered making a row a specific week or use an array to store the data but I wanted to see if anyone had any good ideas before I went down that rabbit hole. I feel like using those techniques there is a trade off on what I can query / display in reports etc. Thanks in advance.

you need only 30 rows :wink:

You have my interest … can you elaborate?

It is complicated… but the main idea is to create a JSON file for each student and operate this data with JavaScript. You can have almost unlimited rows.

1 Like

Do you see an issue with performance having to append to the json file each time you write to it? And also having to run javascript?

It will be much faster than Glide… I have an App with over 160K rows of data… works faster than Apps with just 5K of Glide rows.

Thanks for the idea this is neat. Does you solution store the json data in a glide table? or somewhere else? I would like to stay in the glide ecosystem.

Your data is small. It can be stored in Glide for a bigger one… Over a few million rows… you would have to use Google sheets… they would not be connected.

In My app, I use Google sheets, that’s why there is a slight delay… but I can do it in glide… it will be instant.

Over here, I have one that is totally inside Glide.

1 Like

So you are storing the json in a javascript column?

No, in the text column…
Here is another example… the whole App was translated into 67 languages… check how fast it switches when you change language… :wink:

1 Like

How about storing only absentees daily in a comma-delimited list? It would likely just cost you 10 classes x 180 days = 1800 rows, though I don’t know how you intend to show the result on the front end. You might also have to store a table of class IDs and which students are in each class.

2 Likes

Yes that is the part where I think there is a tradeoff. I will have to come up with some way to parse that data so I can present it in a report that shows all the students that attended the class. Also being able to look at a report list and then dive into the student or the roster record .

Would love to see a basic sample of the javascript. Mostly to see how you are pulling the data, storing, and how you present the data

Then nobody will buy this template anymore :wink:

Hola!

I think this thread can be useful for you Glide Big Tables - pricing - #7 by gvalero

There are still other options to improve your table structure, but you have to evaluate and discard one by one, such as using an array to store the data (it’s ok to save data, but kind of hard when you need to parse and retrieve specific data).

Saludos!

So you would need to show which students are presented for a specific day, and view a specific student to see which days they are off?