Generic way to represent a relational database

This commit is contained in:
Vitor Pamplona 2024-04-09 15:59:49 -04:00
parent b224f6d05d
commit f0fe3e59f7

37
41.md Normal file
View File

@ -0,0 +1,37 @@
NIP-41
======
Relational Database
-------------------
`draft` `optional`
This NIP offers a plug-and-play method to export/sync information from existing systems using relational databases into Nostr.
Event kind `31200` represents a row in a database. Each value of the row is added as a tag whose name is the column's name.
Values can be public or encrypted to the user.
```js
{
"kind": 31200,
"tags": [
["d", "<row-private-key>"]
["n", "<table-name>"]
["u", "<database-name>"]
["<column-name>", "<column-row-value>"]
// other public columns
],
"content": nip44Encrypt(JSON.stringify((
[
["<column-name>", "<column-row-value>"]
// other private columns
]
)),
// .. other fields
}
```
Inserts and updates are supported via Nostr's regular signing operations and deletions via [NIP-09](09.md).
The pubkey MAY be own by the system and represent several users from that system.