나는 사용자 계정에 대한 트위터 피드를 가져 오는 웹 응용 프로그램이 있습니다. 두 사람이 같은 사람을 따라 가면 트윗이 DB에 두 번 저장됩니다. 피드를 저장하려면 2 명의 사용자에게만 표시하고 싶습니다. 해결 방안은 무엇인가? 웹 응용 프로그램에는 PHP와 MySQL이 있습니다.계정이 다른 두 명의 사용자가 트위터에서 동일한 사람을 팔로우하고 DB에 동일한 피드를 두 번 저장합니다. 피하는 법?
0
A
답변
0
해결책은 두 개의 테이블을 가지는 것입니다 : 하나는 트윗을 저장하고 하나는 사용자와 피드에있는 트윗을 연결하는 조인 테이블입니다.
상황을 해결하려면 한 명의 사용자가 많은 짹짹에 액세스하고 하나의 짹짹이 많은 사용자에게 표시되도록해야합니다. 이것은 관계형으로 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
이러한 방식으로, 하나의 사용자들은 여러 스트림 트위터를 갖는 링크 될 수 있고, 트윗 여러 사용자가 볼 수 연결될 수있다.
에 대한 논쟁이 있습니다. 근본적으로 대부분의 경우 사용자가 겹치는 짹짹이를 가지지 않으면받은 짹짹당 두 개의 테이블에 한 행을 추가 할 것입니다.
기본적으로 중복이 많이 발생하는 경우 유용하며 데이터베이스 무결성을 유지하려는 경우 일반적으로 적합합니다. 그러나 데이터베이스 크기가 고려 사항이라면 다른 솔루션을 조사하는 것이 좋습니다.
당신이 말하는 데이터베이스의 데이터 구조는 무엇입니까? –
시스템은 TweetId를 저장하기 전에이를 확인해야합니다. DB에 이미 가지고 있다면 다시 저장할 이유가 없습니다. – DaImTo
tweet_id가 이미 있고 사용자 목록을 저장/업데이트 할 수 있는지 확인할 수 있습니까? – Vishal