M: I’m looking for a free or cheap phone database that I can use to build a personal karaoke history. It needs to build entries in a way that my current one, MobiDB , does not seem to be able to do from its design mode – although I’m using the free version so maybe it’s just disabled. Can you give any advice?

G: TL;DR: Try Airtable (free tier) or Google Sheets for flexible, relational-style tracking on mobile. For truly relational design with forms and sub-entries (like karaoke sessions with multiple songs), try Ninox (free on one device) or LibreOffice Base if you’re open to desktop. MobiDB's free version is heavily limited in relational linking.


Breakdown:

Why MobiDB is Failing:


1. Airtable (Best all-around free option)

2. Google Sheets (Simpler but highly customizable)

3. Ninox (Free for single-device personal use)

4. LibreOffice Base (Desktop)


If You Want: Quick Phone-Only Minimalist Solution


If You Want: Fully Relational Solution with Mobile Sync


Let me know if you want me to help set up a sample structure in any of these platforms.

M:

It needs to be a database; it’s a simple thing, but I’ve been spoiled, and sheets can be skittish in terms of interface on smaller screens. What I’m trying to do is make a database that I think requires three tables: one listing bands, one with songs referring to the artist, with a design that allows a new artist to be added, or to select from one that already exists, and a performance table, which refers to those songs. Even better if the form allows me to record the performance date list on the song entry as well when it’s entered.

G: Thank you for the clarification — you’re describing true relational database behavior with subforms and lookup fields that work cleanly on mobile. MobiDB’s free version cannot do this, and Google Sheets is, as you said, not a real database and has poor small-screen usability for this kind of structured entry.

Here’s a more targeted shortlist for what you’re after:


Best Free or Cheap Options for Relational Databases with Good Mobile Interfaces:

1. Ninox (Best Fit – Free on One Device)


2. Airtable (Second Best, Cloud-Synced, Freemium)


3. Glide (Mobile App Builder, Freemium)


4. SQLite with a Mobile Client (Manual Option)


Recommendation:


I can help you sketch out a base structure or even walk you through a sample build if you want to go forward with one of these.

M: k, i got ninox. based on what i described, where do you think i should start

G: Great — since you're working with Ninox, here's how to build the karaoke tracking database you described. We'll break it into three main tables with relationships between them and forms that can reference linked entries and allow creation on the fly.


🧱 Table Structure

1. Bands

Basic info about musical artists.

Field Name Type
Name Text
Genre Text (optional)
Notes Multiline Text (optional)

2. Songs

Each song is linked to a band.

Field Name Type Notes
Title Text
Band Reference Link to Bands (allow creation)
Language Text (optional)
Notes Multiline Text (optional)
Performances Reference (multiple) Link to Performances (reverse reference)

🔧 In Ninox: After linking to Band, make sure “Allow creating new records from this field” is enabled so you can add a new band during song entry.


3. Performances

Each entry is a specific time you sang a song.

Field Name Type Notes
Date Date/Time
Venue Text (optional)
Song Reference Link to Songs
Notes Multiline Text (optional)

🔄 If you want reverse lookup (see all performances for a song), add a multiple reference field in the Songs table back to Performances.


📋 Setup Flow

Step-by-Step in Ninox:

🔹 1. Create the Tables

🔹 2. Create the Relationships

🔹 3. Customize Entry Forms


🪄 Bonus Tips


Want help building a template? I can sketch out a layout or show mock field definitions in JSON-style if that helps you plan ahead.

M: so would the bands reference field have the ‘composition’ option set to yes, then?

G: Yes — in Ninox, setting the reference field’s “Composition” to Yes means:

🎯 You’re embedding (composing) child records as part of the parent, and they’ll be deleted if the parent is deleted.


🧠 For Your Use Case:

Field: Band (in Songs table)

Think of Bands as the “parent,” but not in a delete-dependent way.


➤ Use Composition = Yes when:


🎯 Final Recommendation:

Table Reference Field Composition Reason
Songs → Bands Band ❌ No Songs link to Bands, Bands are global
Performances → Songs Song ❌ No Same logic: many performances per song
(Optional) Songs → Performances Performances ✅ Yes (optional) Makes sense if you manage them from the song

Let me know if you want help defining the exact fields with options like “allow creation,” “cascade delete,” or filtered views.

M: okay, i’m not seeing anything definitely allowingh the creation of a band entry from the song. with advanced options showing, i’m seeing: required, composition, show field as, tooltip, show data as, display field only if, trigger after update, constraints, writable if, and binding. … what’s relevant here

G: Thanks for the detailed view — you're in the right place. Here's how to enable adding new bands directly while creating a new Song:


✅ Goal:

Allow inline creation of a new Band entry when filling out the Band reference field in the Songs table.


🧭 Where the Setting Lives:

That ability is controlled by “Show field as” in the reference field options.

Here’s what to do:

1. Go to your Band reference field in the Songs table.

2. In the field settings, look for:

3. (Optional) Check that “Required” is not enabled during testing, in case it’s blocking form save.


🧪 Quick Test:

Once that’s set:

If not:


📌 Summary of Relevant Field Settings

Setting Use it? Description
Composition ❌ No Keep Band independent
Show field as ✅ Yes Set to “Choice with new entry”
Required 🔄 Optional Use if every song must have a band
Writable if ❌ Leave empty Don’t block editing
Binding ❌ Leave default Don’t change unless advanced use
Trigger after update 🔄 Optional Use for automation later

Let me know if the “+ New…” still doesn’t show up — there are workarounds (like quick action buttons or embedded forms) if the toggle method is buggy.

M: “show field as” only has these options: pop-up, combobox, switch, radio buttons, embedded

G: Thanks — that confirms you’re using the mobile or basic version of Ninox (iOS/Android or non-cloud personal use), where the field options are more limited than the web/cloud version.

Here’s what’s going on:


🔍 Why You're Not Seeing “+ New” or Extended Options

In the personal/local version of Ninox, especially on mobile:

If there’s no “+” button, then it’s a UI limitation or permissions issue.


✅ Workaround Steps

Here’s how to make sure adding a new band from the Songs table is possible:

1. Set “Show field as” to “Pop-up”

2. Test the Flow

If that doesn’t appear, proceed to fallback below.


🛠 Alternate Method (Quick Button to Add Band)

If the pop-up field doesn’t allow new entries from within:

Option: Add a Quick Action Button in the Songs Table

  1. In the Songs form layout, add a button field called “Add New Band”.
  2. Set its action to:
let newBand := (create Bands);
openRecord(newBand)

This will:

It’s not as smooth as combo-with-new-entry, but avoids switching tables.


✅ Summary

Feature Available in Free/Mobile Workaround
Add new via ComboBox ❌ Not available Use Pop-up + “+” button
Add new via Table View ❌ Not available Use button to create Band
Reference and link existing ✅ Yes Works via all options

Let me know if you’d like help setting up that button or making the UI flow smoother.