I would like optimize the read query performance -- (response time, perhaps memory use) -- of storing a list of key/value pairs as a property compared with storing the same data as graph of labeled nodes.
The specific context is a list of 21 five-character strings, where each string is a key assigned by the US Census Bureau of another item managed in the database. Each such list is also associated with a date, so there is an instance of this list for each day within a given range (currently 2020-2022).
My current code is working, but computes this list over and over in a subquery. I'd like to instead compute each list once and then somehow store the resulting list.
One obvious approach is to compute the list and then store it as the value of a property on an already-existing labeled node (where there is one containing node for each day).
A different approach is create a labeled node for each element of the list (containing a date/value pair), link the elements together with a ":PRIOR" relationship binding, and use a path query and list comprehension to collect the desired list.
Is there a relevant "Neo4J best practice" that offers guidance about design decisions like this? I can make it work either way (I think). I can spike each implementation and measure the results myself. Since I'm surely not the first Neo4J developer to confront this question, I'm hoping that this community can offer some collective wisdom.
What is "Neo4J best practice" for storing multiple seldom-changing lists of key/value pairs?