0 голосов
спросил от в категории database
СУБД являются реляционными и поэтому должны быть вашей моделью данных.

Это то, что я бы сделал:
TABLE_WebPage ------------ integer id;        //primary auto increment key varchar(50) name;  //maybe UNIQUE index on that one varchar(300) url; . . . TABLE_PageMetaTag ------------------ integer id;        //primary auto increment key integer pageId;    //foreign keyto TABLE_WebPage.id varchar(10) name;  //maybe UNIQUE index on pageId & name varchar(50) value;


Здесь параметризованный оператор SQL, который будет извлекать все метаименования и значение для одной из ваших веб-страниц:
SELECT m.name, m.value  FROM TABLE_PageMetaTag m WHERE m.pageID = @pageID


И если вы хотите узнать, сколько метатег на каждой странице есть, выполните следующие действия:
SELECT p.name, COUNT(m.*) AS NumberOfTags FROM TABLE_WebPAge p     INNER JOIN TABLE_PageMetaTag m ON p.id = m.pageId WHERE      NOT m.name IS NULL     AND     NOT m.value IS NULL GROUP BY p.name


Надеюсь, это даст вам представление о том, что я предлагаю (для начала).
На самом деле, я бы пошел еще дальше, а также создал отдельную таблицу для имен тегов. Тогда TABLE_PageMetaTag не будет содержать имя самого тега, а скорее внешний ключ для дополнительной таблицы, которую мы могли бы назвать TABLE_MetaTagName.

Преимущество такого подхода заключается в том, что там может быть изменение количества тегов, и это решение хорошо подходит для этого. Необходимо хранить только те метатеги, которые содержат значение, и если вы примете мой дополнительный подход с именами в отдельной таблице, вы также можете узнать, какие веб-страницы имеют те метаданные, которые отсутствуют на них.

Воспользоваться преимуществами действительно реляционной модели данных!

-MRB

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
0 голосов
ответил от
Thanx MRB, я абсолютно согласен с вашим решением. Но предположим, что в моей ситуации я остался с этими двумя вариантами, как указано выше для каждой страницы.

1. Определите 16 новых полей в таблице вместе с другими полями ИЛИ
2. Определите одно поле, которое может содержать все значения в определенном специально соединенном поле [специальными символами, которые должны быть php: explode () - позже, чтобы получить информацию]

спасибо
0 голосов
ответил от
Объяснение MRB было действительно выдающимся, проблема заключалась в том, что я выбрал для него голосование, я ошибочно проголосовал за него. Извините MRB. Теперь я даже не знаю, что могу изменить свой рейтинг VOte.

Все мне очень помогли. Спасибо всем.

Категории

Добро пожаловать на сайт DraftingCode Q&A (ИТ ответы), где вы можете задавать вопросы и получать ответы от других членов сообщества.

Похожие вопросы

...