Появление в реляционном мире с хранилищем таблиц Azure явно отличается. Первое, с чем я столкнулся, это как правильно хранить отношения «многие ко многим».
Например, у меня может быть система, которая отслеживает пользователей и книги, которыми они владеют. Я нашел еще одну запись здесь на SO, в которой предлагалось иметь свойство String для пользователя, в котором в основном содержался список идентификаторов книг, которыми владел пользователь. Хотя я понимаю, что иногда это приемлемый способ хранения данных, проблема заключается в том, что Azure позволяет хранить только 64 КБ данных в строке. Это определенно ограничивает количество книг, которые потенциально может иметь пользователь.
Другим возможным решением является дублирование данных. У меня может быть таблица, в которой хранятся все известные Книги в системе. Но когда пользователя нужно связать с книгой, я копирую данные книги в другую таблицу с именем OwnedBooks, которая, по сути, точно такая же, как таблица Book, за исключением того, что она также имеет свойство OwnedByUserID.
Есть ли другие возможные решения?
Помимо этой проблемы, есть ли у кого-нибудь полезные советы по использованию других шаблонов и методов при использовании хранилища таблиц Azure?