2013-05-03 2 views
0

저는 데이터베이스 디자인에 익숙하지 않으며 기존의 문제를 해결하려고합니다.HistoryOfAllEvents 및 EventDetails를 저장하는 모범 사례

이벤트 목록 (이벤트에 대한 매개 변수 열 포함)이 있으며 각 이벤트에는 이벤트에 대한 다른 세부 정보 테이블이 있습니다.
예를 들어, 이것은 과학적 도구의 사용법 일 수 있으며, 각 실행 이벤트는 실행되는 동안 많은 양의 데이터가 수집됩니다.

구조로 무엇을 권하고 싶습니까?

나의 첫 번째 아이디어는 사용 내역에 대해 하나의 테이블을 갖는 것이고, 각 행은 수집 된 데이터를 저장하는 자체 테이블에 연결됩니다. 하지만 행을 테이블에 연결하려면 어떻게해야합니까? 전체 테이블에 외래 키와 같은 것이 있습니까?

나의 두 번째 생각은 하나, 단일, 수집 된 데이터의 테이블을 가지고 P 키, F 키를 사용하여 수집 된 데이터와 사용 내역을 연결하는 것입니다. 그러나 매일 수천 개의 데이터 포인트를 수집하는 수백 개의 장비가 있다면이 하나의 테이블은 매우 커질 것입니다 (아마도 GB/년). 괜찮겠습니까? (저는 마이크로 컨트롤러/임베디드 엔지니어이기 때문에 MB 이상의 모든 것이 나에게 커다란 것처럼 보입니다.)

모든 의견을 환영합니다. 감사!

+0

이것은 실제로 특정 구현에 따라 다릅니다. 샘플 데이터를 보여줄 수 있습니까? 제 아이디어 중 하나는 효과가 있지만 어느 것이 가장 좋을까요? 아니면 세 번째, 더 나은 방법이 있는지는 데이터가 어떻게 생겼는지에 달려 있습니다. –

+0

그런데 1GB의 데이터를 추가하면 전혀 문제가되지 않습니다. 많은 사람들이 수 기가 바이트의 데이터베이스를 꽤 작다고 생각합니다. –

+0

@JeffRosenberg 불행히도, 나는 실제 예를 게시 할 수 없으므로 가상의 것을 사용해야합니다. 한 가지 방법을 다른 요소보다 더 좋게 만드는 요소에 대해 조언 할 수 있습니까? – XKCD137

답변

1

위의 의견을 바탕으로 두 번째 옵션이 가장 좋은 것 같습니다. 수집 된 데이터의 단일 테이블을 외래 키로 연결하는 것이 좋습니다. 외래 키의 색인을 생성하는 동안 크기가 수 GB 인 테이블에는 아무런 문제가 없어야합니다.

데이터를 보지 않고는 더 나은 대안이 있는지 실제로 제안 할 수는 없지만 잘 수행해야합니다.

관련 문제