J'ai une table MySQL, chaque ligne représentant une personne. Pour chaque personne que je voudrais montrer une liste de liens connexes (lors de la génération de sa page sur mon site), donc je créé une colonne appelée « RelatedLinks » qui là j'enregistrer le contenu HTML brut tels que:Enregistrement de plusieurs attributs dans une seule ligne MySQL
<a href="domain1.com">Related Link 1</a> <a href="domain2.com">Related Link2</a>
Ensuite, Je viens d'utiliser PHP pour echo $row["RelatedLinks"];
dans le HTML lui-même.
Le problème avec cette implémentation est que j'ai peu de contrôle sur les liens, par exemple en changeant leur ordre d'apparition sur le site, en supprimant/éditant un lien spécifique et ainsi de suite.
La deuxième idée que je pensais était de créer une colonne dans la table pour chaque lien associé, tels que « RelatedLink1 », « RelatedLink2 », puis utiliser PHP pour faire écho $row["RelatedLink1"] . "<br />" . $row["RelatedLink2"].
Bien que je n'ai beaucoup plus de contrôle avec cette mise en œuvre, je pense que je crée un gros frais généraux dans la table.
Qu'est-ce qu'un moyen efficace pour réaliser cette fonctionnalité?
EDIT
Se référant à la réponse de Gabriel, la question est maintenant de la complexité:
Avec l'implémentation actuelle, une fois que je choisis la personne que j'ai tous les liens dans ma main - complexité de O (1). Quelle sera la complexité d'exécuter une requête pour sélectionner toutes les clés étrangères de la personne actuelle, comme suggéré par Gabriel (et Haim) ci-dessous?
Merci,
Joel
vous devez enregistrer tous ces liens dans une nouvelle table avec référence à personID –
Haim est droit. S'il vous plaît ne commencez pas à ajouter plus de colonnes. Normaliser la configuration de votre base de données, il suffit d'enregistrer le nom du lien et le lien lui-même et lui donner une référence à l'entrée de l'utilisateur. – aefxx
Question éditée – Joel