Я бы не стал настраивать таблицу для каждого пользователя.
Определенно идти реляционным.Я не уверен, что полностью слежу за тобой вокруг "Джона с его вещами ..." и так далее.Поэтому я интерпретирую это как
user table
room table
item table
relational user->item (id, user_id, item_id, room_id) OR:
relational item->room
. Таким образом, вы можете вывести пользователя, перечислить комнаты, к которым он относится, затем перечислить предметы в этой комнате.Кроме того, подобным образом, вам не нужна новая запись элемента для общих вещей, таких как таблицы, печи, шпатели и т. Д.
Ваш список может стать большим, но если вы правильно масштабируете и планируете внутреннюю миграцию обновлений, когдавам абсолютно необходимо (как и миллионы пользователей), тогда у вас все будет хорошо.Подумайте, сколько таких сайтов, как Facebook и Ebay, нужно поддерживать.Большие отношения нормальны для баз данных, поэтому я не позволю пару миллионов строк напугать вас.