I think your best bet is to use streams, and for the "user" to be identified by the publisher of the stream item, assuming that you've set each user up to have their own address/identity on the blockchain. Each stream item is a serialized JSON object containing a set of key/value attributes. Then you can use liststreampublisheritems to retrieve all items by a particular user, and apply logic at the application level to build up the last version. (Future versions of MultiChain will take care of a lot of this for you.)