2012-07-28 7 views
1

Ceci est une question générale sur la meilleure façon de configurer une base de données, ce n'est pas spécifique à un logiciel mais pour information c'est MYSQL.Meilleure façon de structurer les données dans cette table de base de données

Je surveille 1000 « maisons » et combien de personnes sont présents dans cette maison à un moment donné à utiliser plus tard dans certaines statistiques telles que:

Quelle maison est normalement le plus complet à un intervalle de temps spécifique Capacité moyenne en général La période la plus achalandée pour toutes les maisons et pour une maison spécifique.

Je vérifierai le nombre de personnes présentes chaque heure.

Quelle est la meilleure façon de configurer cette table mysql?

Répondre

3

On dirait que vous voudriez (éventuellement) des entrées pour chaque maison (une table de maison pour décrire chaque emplacement, avec une sorte d'ID).

Ensuite, vous voudriez une table transactionnelle qui contiendrait l'ID de la maison, le nombre de personnes et la date/heure de l'échantillon.

De cette façon, vous pouvez analyser ce que vous avez besoin

par exemple

House 
    HouseID int 
    Address1 varchar 
    etc etc.. 

Attendance 
    RecordID int (optional I suppose) 
    HouseID int 
    People int 
    SampleDate datetime 

requêtes pour des choses comme les moyennes sont assez faciles

SELECT AVG(People) FROM Attendance WHERE HouseID = 1 AND SampleDate BETWEEN Date1 AND Date2 

Quelle maison est la plus complète pour une plage horaire spécifique

SELECT TOP 1 HouseID FROM Attendance GROUP BY HouseID ORDER BY SUM(People) DESC 

Disclaimer: certains/tous ces requêtes peuvent ne pas fonctionner:

Edit: Ils fonctionnent! Voici un violon SQL en leur montrant en action

http://sqlfiddle.com/#!3/293e4/8

+0

Voilà comment je pensais, mais je suis coincé sur la façon dont la requête se, cela a un sens maintenant. – ParoX

+0

Édité la réponse pour ajouter plus de détails et une démo – Charleh

Questions connexes