The Zettelkasten note-taking method has made book writing and writing scientific papers easy for hundreds of years already.
Read the full story here
"Do you have a unique identifier for each note? How do you guarantee its uniqueness?"
Use large numbers, it will provide uniqueness for free. Pick a random identifier from a gigantic pool of identifiers 😃.
Also, I think timestamp are a bad idea for note identifiers. They could be unique, but they could also not be if you share notes (collaborative database of notes). I think using timestamp as identifiers could prevent you from sharing notes in the future, so even if you don't plan on sharing notes, just in case don't use timestamps.
Large numbers do not guarantee uniqueness in the semantic way, but it does in practice. You only need to decide how big your identifiers should be to make sure the probability of collision is low enough to protect your notes.
For example, say you and your 10 billions friends plan on writing notes together. You all are very productive and produce 10 notes a day for your whole life. Let's imagine you all are "lucky", you'll live 200 years. That's a total of 10 x 10^9 x 10 x 200 x 365 = 73 x 10^14 notes. Round this to 10^16 notes. What ID size do we need for our notes?
Let's start with existing solutions, UUID4 for example, this universal unique identifiers use 122 random bits, that's a total of 2^122 different identifiers. We can now compute the probability of having a single collision (2 notes sharing the same "unique" ID).
This gives a probability around 9.4 x 10^-6, that’s 0.00094% chance of this happening. I think its more likely any of the collaborator will try to destroy your whole database anyway 🤭.
More seriously it means that even in this very optimistic scenario, it's quite unlikely that any collision occurs. That sounds pretty safe to me.
Now the question is, how do we generate random (uniformly chosen) numbers. That’s a pretty tough job, but we are quite good at this, it’s not perfect so you won’t have this exact probability of collision, but close enough.
Generate a uuid4.
If you collaborate you can just add a letter in front of the ID. Problem is then solved (Christian and I did this when we did some experiments).
The time stamp has more benefits than just uniqueness.
I am a Zettler
It looks like you're new here. If you want to get involved, click one of these buttons!