Le type de données MySQL "DECIMAL" est pour l'arithmétique exacte.

Contrairement au type "FLOAT" sa précision est fixée pour n'importe quelle taille de nombre, donc en utilisant "DECIMAL" au lieu de "FLOAT" vous pourriez éviter les erreurs de précision lorsque vous effectuez des calculs.

Si vous avez juste à stocker et récupérer des numéros sans calcul, dans la pratique "FLOAT" serait sûr, mais il n'y a pas de mal à utiliser "DECIMAL".

La plage de latitudes s’étend de -90° de +90° (degrés), donc DECIMAL(10, 8) est correct pour cela, mais les longitudes vont de -180° à +180° (degrés) donc vous aurez besoin d'un DECIMAL(11, 8).

Le premier nombre est le nombre total de chiffres mémorisés, et le second est le nombre après la virgule.

En bref : lat DECIMAL(10, 8) NOT NULL, lng DECIMAL(11, 8) NOT NULL