# I am trying to create a habit tracking

**URL:** <https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674>\
**Category:** Ask for Help\
**Created:** [December 9, 2025, 4:32pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674 "2025-12-09T16:32:28Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [December 9, 2025, 4:32pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/1 "2025-12-09T16:32:28Z")

</div>

I am trying to create a habit tracker. I have created a habit page where users can browse pre-made habits and then ‘adopt them’. Once they are adopted they go to the users daily tracking page and are on the their list of habits.

I want users to be able to see their habits each day and then tick them off and keep a log of days they achieved habits and missed habits. Glide keeps telling me I need to use template columns and relation columns which is not working as Glide it is telling me to relate 3 columns and glide only lets you relate 2.

Can anyone help me. I am getting really disheartened.

---

<div class="post-metadata">

**Author:** ![GrumpyRick](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/grumpyrick/32/18079_2.png) [@GrumpyRick](https://community.glideapps.com/u/GrumpyRick)\
**Post date:** [December 9, 2025, 8:18pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/2 "2025-12-09T20:18:44Z")

</div>

I would have a users table, habits table (where user’s habits are that includes their userID), daily completed habits table (which has the user id and habit id added when a habit is completed), and a table of pre-made habits to choose from. The Habits Table would have a query to the completed habits table linking a completed habit row for the current day. If empty then the app would show the habit as needing to be completed. Once done the appearance of the habit can change (like a checkmark or star).

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [December 9, 2025, 9:08pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/3 "2025-12-09T21:08:10Z")

</div>

> [@GrumpyRick](#):
>
> The Habits Table would have a query to the completed habits table linking a completed habit row for the current day. If empty then the app would show the habit as needing to be completed. Once done the appearance of the habit can change (like a checkmark or star).

I have completed the first part you have mentioned but could you please walk me though this part - ‘The Habits Table would have a query to the completed habits table linking a completed habit row for the current day. If empty then the app would show the habit as needing to be completed. Once done the appearance of the habit can change (like a checkmark or star).’

---

<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:** [December 10, 2025, 2:17am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/4 "2025-12-10T02:17:00Z")

</div>

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/7/b7ebaf59d9f0918e6c18dfeee2ad7431f4ff7afd.png)

I think this represents what he means. Can you show us what you have set up?

---

<div class="post-metadata">

**Author:** ![Robert\_Petitto](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/robert_petitto/32/25193_2.png) [@Robert\_Petitto](https://community.glideapps.com/u/Robert_Petitto)\
**Post date:** [December 10, 2025, 3:05am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/5 "2025-12-10T03:05:26Z")

</div>

The “template column → relation column” (creating matching keys in two different tables) suggestion is a bit outdated (though still perfectly feasible). We now have access to Query columns instead.

> [@magnet The QUERY Column: One Column to Rule Them All!](https://community.glideapps.com/t/the-query-column-one-column-to-rule-them-all/61532):
>
> wave Hey fellow Gliders! mechanical_arm Glide just got even more powerful by introducing the QUERY column! No more complex, multi-column setup to achieve conditional relations. The Query column can: backhand_index_pointing_right Filter backhand_index_pointing_right Sort AND backhand_index_pointing_right Limit related data in ONE COLUMN Learn more: [[Glide 101: Query Column Replaces DOZENS of Computed Columns] ](https://www.youtube.com/watch?v=2K3KzgbrXT8)

That being said, I’d set it up like this:  
https://www.loom.com/embed/c95f5e8eff274926b6236b4a03bf50cc

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [December 31, 2025, 7:10pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/6 "2025-12-31T19:10:43Z")

</div>

Hi

I think I Understand what the graphic means but I am confused at the logic centre the query in the data sheets ?

---

<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:** [January 1, 2026, 8:28am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/7 "2026-01-01T08:28:53Z")

</div>

Do you mean you want to explain more about the logic for the query column?

Can you show us what you have at the moment in some screenshots?

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [January 7, 2026, 9:26am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/8 "2026-01-07T09:26:51Z")

</div>

![Screenshot 2026-01-07 at 09.23.37](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/9/39804381fa3b94648776bdc4fa7ef3c9d70127f1.jpeg)  
 ![Screenshot 2026-01-07 at 09.23.45](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/7/4756262ae4877472502969db387b988df26e853b.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.02](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/6/8/68752a831d5473714f7c5946f19ed5a85adb546f.png)  
 ![Screenshot 2026-01-07 at 09.24.13](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/5/d538aa71b480205777c12d1ece83aa1c562b9841.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.19](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/f/e/feb3adcec12b5c6df8ba53ed3351e192dd5792be.jpeg)

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [January 7, 2026, 9:27am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/9 "2026-01-07T09:27:30Z")

</div>

![Screenshot 2026-01-07 at 09.24.25](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/8/b8c7b50bfe59f4203924df57434301f5c63f6916.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.38](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/2/3/23fed86489bfcd21687d9e4ff7eb00d1f99f71af.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.47](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/0/e/0edbd29d34e1da2631472d805ada289b80dff23d.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.51](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/f/4ffdbb87be0a8c31cd3f8520e554c589c3756d4f.jpeg)  
 ![Screenshot 2026-01-07 at 09.24.57](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/6/a6153805d0d8e50f83d0dda031bf9b2ffd5a2faf.jpeg)

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [January 7, 2026, 9:28am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/10 "2026-01-07T09:28:50Z")

</div>

This is some screenshots of what I have so far. I have tried to do what you have recommended but I do not think I am doing it right. Any step by step instructions would be greatly appreciated.  
Also, sorry for the slow reponse I was away and had limited wifi

---

<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:** [January 8, 2026, 1:10am UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/11 "2026-01-08T01:10:58Z")

</div>

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/2/d/2d4292f277e2a490a1db9ae11166ba7c628706b8.jpeg)

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/4/845cb2efa1dd7ee0c1b60e7f0c201e7f555c112c.jpeg)

Okay, let’s break down this habit tracking system into simpler terms.

You’ve got the right idea with two main tables:

1. **Your “Master Habits Table” (the first image):** This is where you list all the habits you want to track. Think of it as your main list of tasks.

2. **Your “Completed Habits Log Table” (the second image):** This is like a diary where you record every single time you complete a habit.

Now, let’s make some improvements to how these tables work together:

### Simplified Database Structure for Habit Tracking

Instead of repeating information like “User Email” or “Habit Name” in your “Completed Habits Log” table, which can lead to inconsistencies if you ever change a habit’s name, we can use a clever trick called a “Habit ID.”

Here’s how to set it up:

1. **In your Master Habits Table:** Add a new rowID column.

2. **In your Completed Habits Log Table:**

- Remove columns like “User Email” and “Habit Name.”

- Add a new column called **“Habit ID.”** Whenever your user “complete” a habit, write the master habit’s rowID to this column.

- **Relate the Tables:** Now, you’ll “link” the rowID column in your “Master Habits Table” to the “Habit ID” column in your “Completed Habits Log” table using a relation. This creates a “multiple relation,” meaning one habit in your Master table can have many completed entries in your Log table.

- **Timestamp:** Make sure you have a **“Timestamp”** column. Every time you complete a habit, this column will automatically record the exact date and time it was done. This is crucial for tracking.

1. **Adding Intelligence to Your Completed Habits Log Table:**

- Create an **“Today?”** If-Then-Else column. This will be a smart column that automatically checks your “Timestamp” column.

1. **Seeing Today’s Progress in Your Master Habits Table:**

- Go back to your **Master Habits Table**.

- Add a new column called **“Completed Today?”** (or something similar). This will be a “Rollup” column.

- **Rollup Logic:** This “Rollup” column will look at all the related entries in your “Completed Habits Relation” and specifically check the **“Today?”** column in those entries.

---

<div class="post-metadata">

**Author:** ![nathanaelb](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nathanaelb/32/43079_2.png) [@nathanaelb](https://community.glideapps.com/u/nathanaelb)\
**Post date:** [January 8, 2026, 5:26pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/12 "2026-01-08T17:26:07Z")

</div>

> [@Lisa\_Smith](#):
>
> Can anyone help me. I am getting really disheartened.

You’re in building mode, which is great. I wonder if you aren’t a little ahead of yourself and perhaps need to plan your app a little more, to have clarity on its scope (feature, workflows) and the structure of your database. I’m not saying you having done this, but oftentimes if scope and database structure are unclear (or approximate), then eventually we get stuck in the building process.

---

<div class="post-metadata">

**Author:** ![Lisa\_Smith](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/lisa_smith/32/82869_2.png) [@Lisa\_Smith](https://community.glideapps.com/u/Lisa_Smith)\
**Post date:** [January 14, 2026, 2:08pm UTC](https://community.glideapps.com/t/i-am-trying-to-create-a-habit-tracking/85674/13 "2026-01-14T14:08:09Z")

</div>

HI

just wondering if you got my email? I have a few questions on it ?
