2010-11-22 3 views
0

안녕하세요, 전문가데이터베이스 관계 개념

당신의 조언이 필요합니다. user, profilepost 엔티티가 있다고 가정 해 보겠습니다.

변형 1 : user이 가지고 많은 profile, profile이 가지고 많은 post

변형 2 : user은, user 많은 post

최고의 무엇 profile 많은이있다? 편의상 "올바른 방법"으로, 또는 심지어 성능까지?

+0

'user','profile' 및'post'가 실제로 무엇을 나타내는 지 설명 할 수 있습니까? 당신은 실제로 데이터를 얼마나 자주 그리고 어떤 규모로 할 것입니까? –

+0

@Surreal Dreams, 답장을 보내 주셔서 감사합니다. 그들은 실제로 그들이 무엇인지를 나타냅니다.'Post' 데이터는 생성/업데이트, 그리고 사용자와 프로파일에서 가장 자주 발생합니다. 물론 현재 단계에서는 프로젝트가 충분히 크지 않습니다. 그러나 미래에는 하루에 10,000 회의 조회수를 기대합니다. – Darmen

+0

'User'와'Profile'의 차이점은 무엇입니까? 왜 사용자는 많은 프로필을 가지고 있습니까? – wuputah

답변

2

상황에 따라 다르다 ... 게시물 works..if 시스템이 프로파일과 관련된 방법에

1). 그런 다음 변형 1을 사용해야합니다. 예를 들어 Stackoverflow에 게시하는 질문은 Stackoverflow 프로필과 연결되어야합니다. 수퍼 유저에 게시하는 질문은 해당 프로필과 연관되어야합니다.

변형 2로 이러한 유형의 동작을 유지하려면 게시물에 속한 위치를 나타내는 필드가 있어야합니다.

2) 데이터 사용 방법. 게시물을 쿼리 할 때 프로필 정보가 필요하지 않으면 프로필과 게시를 연결하면 안됩니다.

3) 성능면에서 매우 기본적인 로직을 사용하여 3 개의 테이블을 조인하여 일부 정보를 검색하는 것은 2 개의 테이블을 조인하는 것보다 더 나쁠 수 있습니다 (물론 조인의 인덱스, 인덱스 등 ...) 다른 모든 것이 평등하다고 말하십시오).

최선의 방법은 간단하게 유지하는 것입니다. 간단하게 유지하면 예상대로 작동하는 것이 있는지 쉽게 파악할 수 있습니다. 그렇지 않으면 이유를 파악하고 수정하는 것이 더 쉬울 것입니다. 필요한 경우 나중에 수정할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. 간단하게 유지 한 다음 최적화하십시오. 감사합니다. – Darmen

1

"일반적으로 데이터 모델을 설계 할 때 어떤 점을 가장 중요하게 고려해야하는지 - 편의성, 정확성 또는 성능"이라고 가정 할 때 정확성을 최우선으로 생각해야합니다. 편리 성과 성과는 2 차적인 관심사가 될 것입니다.

+0

나는 그것이 정확할 수 있지만 너무 느릴 것이라고 생각한다. 좋아, 고마워, 해시. – Darmen

1

옵션 2는 나에게 훨씬 좋은 것처럼 보입니다.
그러나 프로파일의 상점 정보를 이해하면 도움이됩니다.
프로필에 역할/카테고리 정보가 있다고 가정했습니다.

+0

. 프로파일은 특정 정보 (예 : StackExchange의 관점에서 로컬 평판 또는 smth)를 유지합니다. – Darmen