레일즈에서 (아주) 단순한 주식 거래 시뮬레이터를 모델로 삼아 3.1을 가지고 놀고, 평소 앉아있는 UX와는 대조적으로 웹 백엔드에 대해 더 많이 배우려고합니다.다수의 주식 거래 모델링 레일
그래서 당신은
Users (has many transactions)
Transactions (belongs to users, companies)
Companies (has many transactions)
따라서 사용자가 회사의 주식의 수를 구입
을 가지고 말할 수 있습니다, 그것은 특정 거래에 구입 한 주식의 수를 반영 양의 열이있는 트랜잭션 레코드를 작성 , 그 당시의 주가, 그리고 사물이 팔렸는지 또는 팔렸는지를 나타내는 상태 칸이있다. (단순화를 위해 학습 운동이므로 1 거래에는 하나의 구매 또는 판매 이벤트가 포함된다고 가정하십시오.)그래서 사용자는 어떤 종류의 이상한 양의 같은 회사.
그는 전혀에서
- 에 대한
을 파악하기 위해 쿼리 및 요약 할 수 있어야합니다 여러 트랜잭션 행을하게 될 겁니다 얼마나 그가 소유 (모든 구매 - 판매)
- 등
그래서 제 질문은이,이 모델입니다 이 유형의 사용에 맞습니까? 예를 들어 사용자가 소유하고있는 것을 나타내는 페이지를 작성하려는 경우 성가시다. 소유하고 소유 한 금액을 결정하기 위해 모든 종류의 금액을 실행하는 것을 의미합니다. 그러나 어쩌면이 일들이 어떻게 이루어져야한다는 것인가? 아니면 더 좋은 방법이 있습니까?
'소유권'을 나타내는 하나의 트랜잭션을 유지 관리하고 '소유'된 각 회사에 대한 열을 업데이트 한 다음 개별 트랜잭션을 분리하여 트랜잭션에 조인 된 두 번째 transaction_history 테이블에 기록하는 것이 더 좋습니까?
나는 그것을 좋아한다. after_save 콜백을 통해 0 공유가 더 이상 소유되었다고 계산하면 소유 공유 항목을 모두 삭제하는 것이 합리적인 일이라고 생각하는 것이 맞습니까? 그게 나 한테 가장 이해가가는 것 같아. – Dave
예. 콜백에서 적절하게 생성, 업데이트 또는 삭제한다고 생각합니다. –
이 캐싱 된 정보는 미리 계산 된 쿼리 또는 http://martinfowler.com/bliki/EagerReadDerivation.html입니다. –