📓 Notion Databases

😇 pub: HXPM Public Issues  |   |  Print Markdown

Notions discussion of DB properties is interesting to read. Especially their relations

you get the feeling their model is indeed a real database underneath

it makes me wonder if i should consider that shape

we could export csv more easily, in fact that somewhat explains their “csv” export when you do a gdpr request. and the mapping directly to a table, calling them database (tables).

properties really do exist on every row in the table, youd probably want a file with table data, and then separately the table metadata (meaning of each column, icon, type/how to interpret it).

it doesn’t explain how something like multiselect tags work. I guess that’s a column property.

I think this would directly contradict the idea of Forms, and my plans around Logging where we’d be able to just add on log entries.

maybe logs and KV need to be separate. where KV are “real” columns on a “table” like notion, and logs is more like, contents but different

how do we handle multiple table definitions? this gets towards the “templates” a bit, that we want to define what a default Note looks like dynamically

if we have two note definitions we can take the union, but what about conflicting column definitions? do we prefix them so they’re clear? only the ones that are different? do we use the note template from the correct backend? how do we pick?

in my case this will be hidden a lot in the three repos because no one will look at a single repo individually.

so we need to have sane behaviour for e.g. a private note created based off the public template, where no private template exists. (would we encounter this if we use per backend templates?)

the roll up docs show that people might really interact with things via their tables rather than pages like i do.

i can see that, you add a property to the table and want to fill in all the elements quickly.

do we need a way to take our SQL shaped data and make it more interactive?

  • we could forcibly insert ID as the first select and remove it from results, if there’s a dupe in the query no one is the wiser.
  • then use that in our html output as an ID
  • then provide UI (ugh) to change an attribute and save it to the backend

this really implies we need to have a central store of metadata for KV and then allow just supplying values.

that lends itself to templates. the template stores the definition of the tag, and then the values are recorded more “raw”.

well have to look up the template every time we want to render something tho.


Metadata
Metadata
Key Value
ID PNMR-Id3MiiB9
URN urn:penemure:9ebede41-b95c-4f57-b9a2-21ddcc8a207d
Backend 😇 pub: HXPM Public Issues
Ancestors
📅 Created
📅 Updated
Links

Children

Queryable fields

View in API
title<a href="/penemure/note/9ebede41-b95c-4f57-b9a2-21ddcc8a207d.html"><span class="title">📓 Notion Databases </span></a>
parentsurn:penemure:4d9fe953-c4d9-43d5-ba27-d86bd7d0eefe
version2
created_unix1737970169.0
updated_unix1737970169.0
namespaceNone
typenote
id9ebede41-b95c-4f57-b9a2-21ddcc8a207d
urnurn:penemure:9ebede41-b95c-4f57-b9a2-21ddcc8a207d
url/penemure/note/9ebede41-b95c-4f57-b9a2-21ddcc8a207d.html
backendpub
created2025-01-27 09:29:29+00:00
updated2025-01-27 09:29:29+00:00
systemFalse
blurb[Notions discussion of DB properties](https://www.notion.com/help/database-properties) is interesting to read. Especiall
title_plain📓 Notion Databases
title_txtNotion Databases
final_ancestor_titlesPenemure
parent_first_titlePenemure
ancestorsurn:penemure:4d9fe953-c4d9-43d5-ba27-d86bd7d0eefe