S'il n'y a qu'une seule ville par propriété, il n'y a rien de mal à la placer dans la table des propriétés. S'il y en a plus, il n'y a pas d'autre choix que d'utiliser une table de villes.
Alternativement, si vous voulez choisir les villes à partir d'une liste déroulante sans ajouts autorisés, avoir une table de villes peut être une bonne idée. Si vous faites cela alors vous voulez probablement stocker le cityid pas le nom de la ville dans la table de propriétés. De cette façon, quand quelqu'un change le nom d'une ville (ce qui probablement ne se produit probablement pas très souvent), il suffit de changer un enregistrement. Bien sûr, si vous avez une table cities, vous devez avoir une clé étrangère et assurez-vous que city_id est indexé dans la table des propriétés pour maintenir l'intégrité de vos données. Mettre la ville dans sa propre table n'a rien à voir avec la normalisation.
Ne pas le faire n'a rien à voir avec la dénormalisation. Cela ne rend pas nécessairement l'une ou l'autre chose bonne ou mauvaise - mais vous devez être clair sur ce que le raisonnement est. Il n'y a aucune indication que le schéma de l'OP n'est pas déjà normalisé. – sqlvogel
@dportas Certes, ma réponse aurait mieux servi la question si elle avait inclus des exemples de schéma normalisé et dénormalisé, indiquant que je pensais qu'il demandait lequel il devrait utiliser. –