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

**URL:** <https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114>\
**Category:** Ask for Help\
**Created:** [April 4, 2023, 6:34am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114 "2023-04-04T06:34:51Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 4, 2023, 6:34am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/1 "2023-04-04T06:34:51Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 4, 2023, 6:37am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/2 "2023-04-04T06:37:45Z")

</div>

you need only 30 rows 😉

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 4, 2023, 6:39am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/3 "2023-04-04T06:39:29Z")

</div>

You have my interest … can you elaborate?

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 4, 2023, 6:41am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/4 "2023-04-04T06:41:40Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 4, 2023, 6:46am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/5 "2023-04-04T06:46:45Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 4, 2023, 6:47am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/6 "2023-04-04T06:47:18Z")

</div>

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.

> **[Dictionary JSON](https://dictionary-json.glideapp.io)**
>
> A free Glide App, with over 160 thousands rows, that you can view, edit and add more!

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 4, 2023, 7:02am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/7 "2023-04-04T07:02:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 4, 2023, 7:08am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/8 "2023-04-04T07:08:57Z")

</div>

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.

> [@arrows\_counterclockwise Bulk clear, edit, restore and delete columns plus Undo action](https://community.glideapps.com/t/bulk-clear-edit-restore-and-delete-columns-plus-undo-action/59546):
>
> A little fun with Glide columns, using Java wink It works well and fast. You can edit or clear the whole column in one click… then undo, edit, or restore all to default. I used a regular inline list. You can still edit, add or delete individual rows as usual. It is a free app with no scripts and no Google Sheets… Pure Glide Page (App)

> **[Bulk Editing and Restoring](https://bulk-editing.glide.page)**
>
> Bulk edit, clear or restore Glide columns.

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 4, 2023, 7:25am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/9 "2023-04-04T07:25:43Z")

</div>

So you are storing the json in a javascript column?

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 4, 2023, 7:27am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/10 "2023-04-04T07:27:21Z")

</div>

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… 😉

> **[Translated Page DEMO](https://page1-demo.glide.page)**
>
> Translate the Page to any Language plus HTML elements, TEMPLATE

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [April 5, 2023, 12:14am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/11 "2023-04-05T00:14:31Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 5, 2023, 1:12pm UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/12 "2023-04-05T13:12:56Z")

</div>

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 .

---

<div class="post-metadata">

**Author:** ![laureljt](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/laureljt/32/24763_2.png) [@laureljt](https://community.glideapps.com/u/laureljt)\
**Post date:** [April 5, 2023, 1:17pm UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/13 "2023-04-05T13:17:47Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [April 5, 2023, 1:19pm UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/14 "2023-04-05T13:19:01Z")

</div>

Then nobody will buy this template anymore 😉

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [April 5, 2023, 3:07pm UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/15 "2023-04-05T15:07:21Z")

</div>

Hola!

I think this thread can be useful for you [Glide Big Tables - pricing - #7 by gvalero](https://community.glideapps.com/t/glide-big-tables-pricing/58578/7)

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!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [April 6, 2023, 12:15am UTC](https://community.glideapps.com/t/i-have-built-an-attendance-app-but-it-takes-up-too-many-rows/60114/16 "2023-04-06T00:15:23Z")

</div>

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?
