Bonjour,

Je me replonge dans MySQL et PHP et je dois créer une base de donnée qui contrindra pas mal de donnée.

J'hésite à utiliser des jointures. Donc, créer 3 tables donc la deuxième aura l'id de la premiere.
Ou j'ai je crée une table et les informations seront enregistre coup par coup.

Ce que fais mon application. Je mesure des données via des capteurs et LoRaWAN. Ces infos me sont retrounées (JSON) sur mon serveur. Je les traite et les enregistrent dans MySQL.

Voici concretement les données:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
{
	"app_id":"lora",
	"dev_id":"featherwings",
	"hardware_serial":"98TTTTTTTTTT0000",
	"port":1,
	"counter":34,
	"payload_raw":"Mzg4LDIzLCwsNDgsODAABBAABBAABBAA==",
	"payload_fields":{"al":"","ba":"388","da":"","hu":"48","la":"","lo":"","lu":"16","mo":"807","pr":"","te":"23","uv":""},
	"metadata":
	{
		"time":"2017-10-04T19:49:20.310914635Z",
		"frequency":868.5,
		"modulation":"LORA",
		"data_rate":"SF7BW125",
		"coding_rate":"4/5",
		"gateways":
		[
			{
				"gtw_id":"exx-b827xxxxxxxxxxxx",
				"timestamp":3767303051,
				"time":"2017-10-04T19:49:20.25902Z",
				"channel":2,
				"rssi":-51,
				"snr":7,
				"rf_chain":1,
				"latitude":44.21944,
				"longitude":5.14136,
				"altitude":40
			}
		]
	},
	"downlink_url":"https://something.thethingsnetwork.org/ttn-eu/api/v2/down/lora/featherwings?key=something"
}
Je pense donc créer une tables tb_measures avec les champs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
app_id
dev_id
hardware_serial
port
counter
payload_raw
et rajouter les champs
pour enregistrer les valeurs de 'payload_fields'

idem pour 'gateway'

J'hésite de créer une table tb_payload ou j'insérai les valeur de 'payload_field' avec une jointure sur tb_measure.
Idem pour 'gateway', un peu comme ceci

Nom : mysql-join.jpg
Affichages : 170
Taille : 232,7 Ko

Je me pose la question ce que vous feriez? Utiliseriez-vous une jointure ou feriez-vous tous dans la meme table avec un grand nombres de champs pour chaque valeur.

Par la suite, je vais devoir extraire les informations de 'payload_fields' pour faire un chart. Je n'ai pas variement besoin des autres informations, mais je pense que c'est bien de les avoir enregistrés de toute manière.

Merci pour votre point de vu