길고양이 연구 - 1. 문제
길고양이 연구로 이동.
길고양이가 얼마나 자주 먹고 마시며 돌아다니는지를 연구 하는 가상의 시스템을 만들어보자.
요구조건
- 고양이에 인식표를 부착한다.
- 인식표를 인식할 수 있는 사료통, 물통, 체중계를 여기저기 배치한다.
- 고양이가 사료통, 물통, 체중계를 사용하면 얼마나 사용했는지 측정해서 서버로 보낸다.
- 서버는 장비가 보낸 정보를 저장하고 통계를 작성한다.
작성할 통계
- 각 고양이가 장비를 사용한 시간.
- 각 장비가 사용된 시간.
유즈 케이스
대충 그린 유즈 케이스. 대략 이런 기능이 필요하다.
사양
- 장비는 사용 정보를 하루 한 번
csv
포맷의 파일로 전송한다.- 파일명 : 전송 시각 + 장비ID
- 내용 : 장비ID, 인식표ID, 측정치, 측정 시각.
- 고양이가 처음 장비를 사용하면 인식표 정보를 서버에 등록한다.
- 매주 고양이가 각 장비를 사용했는지 통계를 작성한다.
- 매일 각 장비의 사용량 통계를 작성한다.
DB
- 고양이가 장비를 사용하면 인식표가 등록됐는지 확인해서 없으면
Cat
데이터를 등록한다. - 사료통, 물통, 체중계를
Device
로 등록한다. - 고양이가 장비를 사용한 정보를
Usage
로 등록한다.
cats
고양이
속성 | 설명 |
---|---|
id | 고양이 일련번호.auto_increment . |
chipId | 인식표 ID. |
deviceId | 장비 ID. |
memo | 연구원 메모. |
createdAt | 등록 일시. |
updatedAt | 갱신 일시. |
deletedAt | 삭제 일시. |
devices
장비
속성 | 설명 |
---|---|
id | 장비 일련번호. auto_increment . |
deviceId | 장비 ID. |
type | 장비 종류. |
uses
장비 사용량 정보
속성 | 설명 |
---|---|
id | 사용량 정보의 일련번호. auto_increment |
chipId | 인식표 ID. |
deviceId | 장비 ID. |
type | 종류. 사용시간, 사료, 물, 체중. |
value | 시간, 사료(g), 물(cc), 체중(kg). |
measuredAt | 측정 시각. |
createdAt | 서버 등록 시각. |