Я создаю программу виртуальных штампов для iphone и столкнулся с проблемой при реализации моей базы данных. Программа по существу имеет основную систему баллов, которые могут быть utitlized через все купец (sort've как воздушные мили), но я также хочу отслеживать, сколько раз вы были в КАЖДЫЙ коммерсантЗадача проектирования базы данных
До сих пор , я создал 3 основные таблицы для пользователей, торговцев и транзакций.
1) Таблица пользователей содержит базовую информацию, такую как user_id и общее количество собранных очков.
2) Таблица торговых точек содержит информацию, такую как merchant_id, местоположение, общее количество баллов.
3) Таблица транзакций просто создает новую строку каждый раз, когда кто-то проверяет каждого торговца и записывает отметку даты, имя пользователя, имя купца и очки.
Таким образом, самый простой способ разобраться, сколько раз вы были для каждого торговца, - это запрос всей таблицы транзакций как для пользователя, так и для продавца, и это даст мне историю транзакций о том, сколько раз вы Я был с этим конкретным торговцем (что идеально), но в конечном итоге я чувствую, что это будет ужасно для производительности.
Другим простым, но «тупым» методом для реализации этого было бы создание столбца в таблице users для КАЖДОГО торговца и сохранение текущих итогов. Это кажется неуместным, так как я буду добавлять новых торговцев на регулярной основе, и для каждого пользователя должны быть добавлены новые столбцы каждый раз, когда это произойдет.
Я рассмотрел отношения «один ко многим» и «многие ко многим» для баз данных mySQL, но, похоже, не может придумать что-то очень конкретное, так как я чрезвычайно новичок в web/PHP/mySQL но я предполагаю, что это то, что я ищу ...
Я также подумал о создании специальной таблицы транзакций для каждого пользователя, которая будет иметь столбец для торговца, а другой для # раз посетил. Опять же, не уверен, что это наиболее эффективная реализация.
Может кто-нибудь указать мне в правильном направлении?
Foursquare & Gowalla - хорошие примеры того типа реализации, который я ищу.Любые идеи о том, как они отслеживают ваше использование у каждого торговца? – jr66