2008-09-23 9 views
8

Nếu tôi đang thực hiện , hãy tính "hoạt động" trên nhiều máy tính và hiển thị hoạt động đó, cơ sở dữ liệu trông như thế nào để lưu trữ dữ liệu?Sơ đồ cơ sở dữ liệu (Sơ đồ ER/Bố cục bảng) trông như thế nào để đo phân phối thứ gì đó? Ví dụ:

Chỉ đơn giản là điều này? Có vẻ quá đơn giản. Tôi đang suy nghĩ về điều này.

ACTIVITYID COUNT 
---------- ----- 

Trả lời

6

Nếu khối lượng sẽ không được ridiculously lớn, tôi có thể tạo ra một bảng mà các bản ghi mỗi sự kiện riêng lẻ, với một DateTime như @Turnkey gợi ý, và có thể là máy tính mà đăng nhập nó, vv

LOGID (PK) ACTIVITYID SOURCE DATELOGGED 
---------- ---------- ------ ---------- 

Điều đó sẽ cung cấp cho bạn khả năng chạy truy vấn để nhận số lượng hiện tại và cũng để sử dụng dữ liệu để xác định sự kiện trong một khoảng thời gian và/hoặc đến từ một máy cụ thể. Chỉ mục nhóm trên ActivityID sẽ cho bạn hiệu suất truy vấn tốt và bảng hẹp nên chèn không nên quá tốn kém.

0

Vâng, tôi e rằng nó đơn giản, giả sử bạn chỉ quan tâm đến số lần mỗi hoạt động xảy ra. Khi bạn đã có bảng đó, bạn có thể dễ dàng tạo, ví dụ: histogram kết quả bằng cách sắp xếp theo số lượng và âm mưu.

0

Tôi nghĩ bạn có thể thêm trường Ngày giờ để bạn có thể thực hiện báo cáo về các sự kiện trong khoảng thời gian nhất định hoặc ít nhất biết khi nào hoạt động cuối cùng được tính.

+0

Có, các trường khác như ComputerID, UserID, v.v. có thể được thêm nếu các thứ nguyên đó là cần thiết. –

3

Tôi nghĩ rằng hoạt động thực tế sẽ tạo một số loại bản ghi với ít nhất một ActivityId và ActivityDate trong bảng ghi nhật ký. Một cột khác có thể là mã định danh của máy tính tạo mục nhật ký.

Sau đó, bạn sẽ tạo số lượng bằng cách tổng hợp các bản ghi hoạt động trong một khoảng thời gian được chỉ định.

Tàu điện ngầm.

+0

Điều này sẽ cho phép báo cáo, vẽ đồ thị tốt hơn v.v ... mà mọi người đều thích xem. – Geoff