2011-02-07 9 views
2

웹 사이트의받은 편지함, 보낸 편지함 기능을 개발하는 방법에 대한 힌트가 필요합니다. 이것은 사용자가 서로 통신 할 수 있도록하기위한 것입니다. 나는 3 개의받은 편지함, 보낸 편지함, 임시 보관함을 가지고 있습니다. 그래서 각 테이블이 채워집니다.ASP.NET 웹 응용 프로그램

총 4 개의 테이블이 있어야합니까? Message_Inbox,받은 편지함, 임시 보관함. 사용자가받은 편지함 또는 보낸 링크를 클릭하면 Message_Inbox 데이터베이스 테이블에서 가져온 적절한 내용의받은 편지함 또는 보낸 된 표가 오른쪽에 표시됩니다. message_Inbox 테이블에서 가져온 내용은 ​​무엇입니까?

저는 asp.net의 초보자입니다. 그래서 내 질문은 순진 할 수 있습니다. 나는 또한 당신의 도움에 대한 내 연구

감사 할 것입니다

답변

3

이렇게하면 창문이 될 수 사용하는 응용 프로그램을 형성하는 데이터베이스 구조, 실버 라이트 응용 프로그램 또는, 특히 asp.net 이상의 데이터베이스 디자인과 더 있습니다 참으로 아무것도!

이 내 접근해야하는 것입니다 다음 중 하나의 구조가 "메시지"라고 표 :

의 MessageID INT NOT NULL IDENTITY (사용자 테이블에 FK)
FromUserId INT NOT NULL
을 ToUserId INT NOT NULL (사용자 테이블에 FK)
IsDraft TINYINT
제목 NVARCHAR (...)
MessageBody NVARCHAR (...)

이 방법을 사용하면 메시지가 임시 보관인지 여부, 즉 의도 된 수신자 (ToUserId)에게 아직 보이지 않는지 여부 만 구별 할 수 있으므로 모든 메시지를 하나의 테이블에 저장할 수 있습니다.

그래서,

SELECT * FROM Message WHERE [email protected] WHERE IsDraft=0 
으로 항목을 보낸 받은 편지함 당신이

SELECT * FROM Message WHERE [email protected] WHERE IsDraft=1 

사용자와 같은 누군가의 초안 메시지 뭔가를 검색하려면

SELECT * FROM Message WHERE [email protected] WHERE IsDraft=0` 

유사한 SQL을 사용하는 것입니다 검색 할

"다중 수신자"모델로 이동하려는 경우, ToUserId 열을 MessageIdToUserId 쌍을 포함하는 하나 이상의 레코드가 포함 된 Message_Recipient 테이블로 쉽게 바꿀 수 있습니다.

+0

도움 주셔서 감사합니다. 나는 그것을 얻었다 – user575219

+0

@ user575219, 도움이되어 기쁘다 =) 내 답변이 당신을위한 기지를 커버한다면, 답변의 상단에있는 빈 진드기를 클릭하여 "받아 들인 대답"으로 표시하십시오. 잠시 시간을내어 다른 질문에 대한 답을 검토하고 거기에서 받아 들일 수있는 것이 있는지 확인할 수도 있습니다. 수락 응답은 시간을내어 도움을 주었던 사람들에게 보상을주고 또한 사람들이 나중에 당신을 도우려고 시도 할 가능성을 조금 더 높게합니다. =) – Rob

관련 문제