Если вы пытаетесь создать сопоставление - не просто удовлетворяете требованиям для передачи функции - тогда вы действительно должны наследовать от collections.Mapping
. Как описано в документации , вам нужно реализовать только:
__getitem__
__len__
__iter__
. Mixin выполнит для вас все остальное: __contains__
, keys
, items
, values
, get
, __eq__
и __ne__
.
Вам не нужно создавать таблицу для каждого пользователя. То, что вам нужно, это отношения «многие ко многим» между каждым пользователем и таблицей контактов. Вы можете прочитать больше о отношениях «многие ко многим» в документации
.