This topic has been discussed a couple of times on the forum:
Would these approaches work for your use-case?