2013-05-12 1 views
1

나는 사용자가 기사를 읽을 수있는 웹 사이트를 개발하고 있어요. 사용자가 액세스 할 때 읽은 기사를 자동으로 표시하도록 제안하는 기능을 구현하려고합니다. 문제는 DB에 기사 데이터를 저장하는 방법을 모르겠다는 것입니다. 수십만 개의 기사와 수천 명의 사용자가있을 수 있습니다. '기사 읽기'에서 각 기사/사용자에 대한 행을 저장하는 것은 비효율적 인 방법입니다. 다른 옵션은 무엇입니까?SQL DB에 기사를 저장하는 가장 좋은 방법은 무엇입니까?

+3

아니, 그건 올바른 방법입니다. – eggyal

+0

당신은 이미 그것을 올바르게하고 있습니다. – ajtrichards

+0

데이터베이스의 힘을 과소 평가하지 마십시오 :-) – Bart

답변

2

기사와 사용자의 여러 수천 수백있을 수 있습니다. '기사 읽기'에서 각 기사/사용자에 대한 행을 저장하는 것은 비효율적 인 방법입니다.

{user, article} 쌍마다 하나의 행을 저장하는 체계가 정확합니다. 행 수가 많으면이 스키마를 비효율적으로 만든다는 의미는 잘못되었습니다. 현대 데이터베이스는 많은 행을 매우 효율적으로 처리하도록 최적화되어 있습니다.

또한 "수십만 개의 기사와 수천 명의 사용자"가 많은 행으로 변환된다는 암시도 올바르지 않습니다. 사용자가 읽는 기사 당 행을 모든 기사가 아닌 저장하고, 그래서 당신이 얻는 행의 수는 최악의 추정치에 미치지 못합니다.

0

전략에 따라 :

는 각 사용자에 대해 고유 한 기사를 저장하는 경우 당신이 기사 상태를 저장할 수 있습니다 (나에게 나중에 기능을 읽기). 당신이 사용자의 읽을 수있는 기사로 설정 한 경우

, 당신은 제대로 상태를 읽고 저장하는 추가 테이블을 도입 할. 나는이 접근법에서 잘못된 점을 보지 못했다.

관련 문제