-1
votes

Un meilleur moyen d'organiser beaucoup de colonnes et de données?

Je crée un site Web immobilier et je me demandais s'il y avait une meilleure façon d'organiser mes colonnes ou mes tables, je ne sais pas ce qui serait la meilleure façon d'y aller, j'ai actuellement un lot des colonnes et je suis inquiet des problèmes de performance.

Les colonnes sont comme suit

  • 5 pour des choses comme ID de propriété, ajouter la date, la durée, le propriétaire / ID utilisateur.
  • 35 colonnes pour des choses comme le titre, la description, le prix, la notation énergétique, l'emplacement, etc.
  • 40 colonnes pour caractéristiques telles que piscine, chauffage central, front de rivière, garage, puits, etc.
  • 15 pour les emplacements d'images stockés sur le serveur
  • 15 pour les descriptions d'images

    est de plus de 110 colonnes une mauvaise pratique dans MySQL? Tout est rapide, mais je suis dans Localhost sur le Mo, mais la taille monstrueuse des tables des requêtes ralenties? Surtout si j'ai quelques centaines de propriétés?

    suis-je ok avec ma configuration actuelle? Que serait la meilleure pratique? Comment les sites Web de commerce électronique qui ont de nombreuses options de fonctionnalités vont-ils?


0 commentaires

3 Réponses :


1
votes

Très probablement, les fonctionnalités de la propriété seront mieux stockées dans une table séparée, avec une ligne par fonction de propriété plutôt que comme des colonnes de votre table principale. Je comprends cela comme une relation nombreuses à plusieurs entretien et ses caractéristiques, cela suggère deux autres tables: xxx

cette structure est beaucoup plus flexible et plus facile à interroger que d'avoir une colonne. par caractéristique. Comme exemples:

  • Fonctions faciles à ajouter en créant de nouvelles lignes dans les fonctions Table (dans l'ancienne structure, vous avez dû créer une nouvelle colonne)

  • facile à agréger les fonctionnalités et répondez à une question comme: compter combien de fonctionnalités que chaque propriété a

    comme pour les images, ils devraient avoir leur table OW. Si une image Maby appartient à plusieurs utilisateurs, il s'agit d'une relation nombreuses à plusieurs, et vous pouvez suivre le motif ci-dessus. Si chaque image appartient à un seul utilisateur, une autre table est suffisante: xxx


4 commentaires

Merci pour votre réponse! Je vais donc diviser les données en différentes tables pour le rendre plus efficace? Je suppose que chaque image n'appartiendrait à un seul utilisateur que l'idée est pour eux de télécharger leurs propres propriétés. Mais il serait toujours préférable de garder toutes les images dans une table séparée quand même,


Vous mentionnez avoir une table de fonctionnalités et avoir 1 ligne par fonctionnalité, comment puis-je associer chaque fonctionnalité à la propriété (à vendre) en question. Dois-je simplement ajouter une colonne de fonctionnalité dans la table de propriétés et stocker les fonctionnalités que l'établissement a une corde comme. "1,5,8,14,17,23,24,35"?


@Dominicormston: vous ajoutez plus lignes au Property_Features Table: Chaque ligne représente une boîte de propriété / fonctionnalité. Essayez de vous aider «SQL Beaucoup à plusieurs» si le concept n'est pas clair pour vous.


Un schéma Star sera inefficace pour interroger.



2
votes

Ce n'est pas une bonne pratique car les données peuvent être stockées dans des tables séparées. Ce qui vous aiderait au-delà de créer un ER pour visualiser comment vous pouvez organiser vos tables. Même si vous ne comprenez pas les instances des ERD, vous pouvez toujours l'utiliser pour organiser au moins vos pensées.

Il semble que vous ayez déjà vos tables séparées en fonction des points de balle que vous avez apportés dans votre question. Une chose que j'ajouterais à vos balles, c'est peut-être briser vos fonctionnalités en catégories et créer une table pour chacun.

Par exemple, des piscines et du bord de la rivière peuvent être placées dans une table appelée PaysageCeatures ou de l'extérieur.


0 commentaires

1
votes

une table:

  • colonnes pour la dizaine de valeurs que vous êtes le plus susceptible de rechercher.
  • concevez plusieurs index composites qui impliquent ces colonnes, en commençant par les colonnes les plus couramment recherchées.
  • Déviser un Colonne Colonne et mettre des "mots" en elle pour un Fulltext index. S'il s'agit de ventes à la maison, considérez des mots comme «la fosse septique de piscine Gazebo Eichler». Cela aidera à certaines requêtes de type "booléennes". (Si vous aimez cette idée, discutons de la manière d'utiliser le filtrage avec des index et / ou du remplissage complet; il devient difficile.)
  • Mettez le reste dans un JSON (ou texte ). Faire pas plan pour la chercher; Au lieu de cela, apportez la ligne dans votre code d'application pour un filtrage supplémentaire après la recherche du index

0 commentaires