У меня есть веб-приложение, которое тянет твиттер-каналы для учетных записей пользователей. Когда два человека следуют за одним и тем же человеком, твиты хранятся дважды в БД. Я хочу хранить каналы, показывая это только двум пользователям. Каково решение? Веб-приложение имеет PHP и MySQL.Два разных пользователя с разными учетными записями следуют за одним и тем же лицом в твиттере, а БД хранит те же каналы дважды. Как избежать?
ответ
Решение состоит в том, чтобы иметь две таблицы: одну, которая хранит твиты, и таблицу соединений, которая связывает пользователя и твиты, которые они имеют на своем канале.
Чтобы разбить ситуацию, вы хотите, чтобы один пользователь имел доступ ко многим твитам и один твит, который будет видно многим пользователям. Это называется many-to-many relationship в реляционных терминах, и типичным решением является использование таблицы соединений для подключения двух объектов (в данном случае, для пользователей и твитов)
В таблице твитов может быть указатель для хранения официальной информации твита ID, а затем вы можете проверить его, чтобы проверить, существует ли он в базе данных.
Очень примитивный пример:
Table user
user_id
Table user_tweet_stream
user_id
tweet_id
Table tweets
tweet_id
twitter_id
tweet_created
tweet
Таким образом, один пользователь может быть связан с имеющих несколько твитов на их потоке, и чириканье может быть связано с рассматриваться несколькими пользователями.
Однако, есть аргумент против этого. По сути, если, по большей части, у ваших пользователей не будет дублирующих твитов, вы по-прежнему будете добавлять одну строку в две таблицы за один полученный твит.
По сути, это здорово, если перекрытие будет происходить много, и, как правило, имеет смысл, если вы хотите сохранить целостность своей базы данных. Однако, если размер базы данных является предметом рассмотрения, вы можете захотеть изучить другое решение.
- 1. Как два разработчика с персональными учетными записями Apple Dev работают над одним и тем же кодом?
- 2. Использование OpenID, как вы управляете двумя учетными записями с одним и тем же ником
- 3. Отношения с одним и тем же лицом - ER Диаграммы
- 4. Как собирать разные файлы и те же файлы на разных компьютерах одним и тем же репозиторием
- 5. Сделать игрока лицом разных врагов с тем же тегом
- 6. Как иметь два разных домена с одним и тем же контентом, за исключением контактной информации
- 7. Как избежать двух разных потоков, прочитайте те же строки из БД (Hibernate и Oracle 10g)
- 8. Как связать два UdpClients с одним и тем же портом?
- 9. Два combobox с тем же DataSet, но с разными запросами
- 10. MySQL-выборка с одним и тем же результатом дважды
- 11. добавление разных данных с одним и тем же первичным ключом
- 12. Как сделать процесс Gulp одним и тем же файлом дважды?
- 13. Два элемента с одним и тем же родительским элементом
- 14. Как избежать проблем с конфигурацией, работающих над одним и тем же проектом с разных рабочих станций
- 15. Как слить два класса с одним и тем же кодом, но работать на разных структурах
- 16. Два NSFetchedResultsControllers с тем же запросом выборки не возвращают одни и те же извлеченные объекты
- 17. Identityserver3 - аутентификация с разными учетными записями
- 18. Удаление более ранних наблюдений за одним и тем же учеником за ту же неделю
- 19. В классе реализованы два интерфейса с одним и тем же методом, но с разными проверенными исключениями
- 20. Угловые 2 разных компонента с одним и тем же маршрутом
- 21. Facebook всегда входит в систему с одним и тем же пользователем, хотя я пользуюсь разными пользователями.
- 22. объединить два dataframes с одним и тем же индексом (неупорядоченный)
- 23. Два приложения с одним и тем же applicationStorageDirectory
- 24. Сопоставление 2 разных результатов с одним и тем же ключом
- 25. Реагирование: обнаружены два ребенка с одним и тем же ключом
- 26. Как избежать изменения переменной мьютекса дважды тем же потоком?
- 27. Два изображения с одним и тем же событием OnClick.
- 28. Ввод интерфейса за свойствами с одним и тем же именем, но с разными типами
- 29. Рельсы 3: Два разных макета с одним и тем же контроллером и действием?
- 30. Два Android-приложений с тем же идентификатором пользователя
Какова структура данных базы данных, на которую вы ссылаетесь? –
Перед сохранением вашей системы следует проверить значение TweetId. Если у вас уже есть это в БД, нет никаких причин снова его сохранять. – DaImTo
Вы можете проверить, существует ли tweet_id и хранить/обновлять список пользователей? – Vishal