У меня есть таблица MySQL, каждая строка представляет Person. Для каждого человека, я хотел бы показать список связанных ссылок (при создании своей страницы на моем сайте), поэтому я создал столбец под названием «RelatedLinks», которые там я сохранить необработанное содержание HTML, такие как:Сохранение нескольких атрибутов в одной строке MySQL
<a href="domain1.com">Related Link 1</a> <a href="domain2.com">Related Link2</a>
Тогда Я просто использую PHP для echo $row["RelatedLinks"];
внутри самого HTML.
Проблема с этой реализацией заключается в том, что у меня мало контроля над ссылками, например, при изменении порядка их появления на веб-сайте, удалении/редактировании определенной ссылки и т. Д.
Вторая идея, которую я думал о том, чтобы создать столбец в таблице для каждой линии связи, связанной, например, «RelatedLink1», «RelatedLink2», а затем использовать PHP эхо $row["RelatedLink1"] . "<br />" . $row["RelatedLink2"].
Хотя у меня есть гораздо больше контроля с этой реализацией, я думаю, что создаю большие накладные расходы в таблице.
Что такое эффективный способ достижения этой функциональности?
EDIT
Ссылаясь на ответ Габриэля, теперь вопрос о сложности:
С текущей реализации, как только я выбираю человека, у меня есть все ссылки в моей руке - сложность O (1). Какова будет сложность запуска запроса, чтобы выбрать все внешние ключи текущего Человека, как предложено Габриэлем (и Хаим) ниже?
Спасибо,
Joel
вам нужно сохранить все эти ссылки в новой таблице со ссылкой на PersonId –
Хаим прав. Не добавляйте больше столбцов. Нормализовать настройку базы данных, просто сохранить имя ссылки и ссылку и дать ссылку на запись пользователя. – aefxx
Отредактированный вопрос – Joel