a) is probably not needed.
I think you can use the properties
field and add a relation/relations as an element of the list.
I noted in this post, which i thought was related:
If you execute this query in Emacs…
(org-roam-db-query [:select [source dest properties]
:from links
:where (= type "id")])
You will get something like this below. I have added a column heading to make it easier to read.
#+RESULTS:
| SOURCE (ID) | DEST (ID) | PROPERTIES
| 2021-01-18T130000| 2021-01-27T165658| (:outline nil)|
| 2021-01-18T152100| 2021-01-27T173744| (:outline nil)|
| 2021-01-18T152100| 2021-01-27T154809| (:outline nil)|
| 2021-01-18T165223| 2021-01-25T203301| (:outline nil)|