feature: model primary_key; bugfix: model allocateID