2013-03-09 3 views
0

Как сопоставить структуру данных в MySQL? Мне интересно, как назначить несколько значений для ключа Tags.Структура данных с несколькими значениями для ключа в MySQL

Это пример из учебника CouchDB.

{ 
    "Subject": "I like Plankton", 
    "Author": "Rusty", 
    "PostedDate": "5/23/2006", 
    "Tags": ["plankton", "baseball", "decisions"], 
    "Body": "I decided today that I don't like baseball. I like plankton." 
} 
+0

нужна новая таблица под названием 'tag' и сделайте внешний ключ в таблице' tag' на вашей (я думаю) таблице 'post'. Однако все не так просто, если у вас есть отношения« многие-многие ». Я предлагаю вам возобновить работу с couchdb, без mysql .. – hgoz

+0

Спасибо всем за ваши ответы. Я нашел хорошую статью (http://tagging.pui.ch/post/37027745720/tags-database-schemas) о взаимоотношениях «многие ко многим» в MySQL. Действительно, поскольку @hgoz [advised] (http://stackoverflow.com/questions/15316379/data-structure-with-multiple-values-for-key-in-mysql#comment21623546_15316379) лучше остановиться с CouchDB или MongoDB:) – bns

ответ

0

Вам понадобятся 2 стола, один для предметов и еще один для тегов элементов.

Столбцы в таблице 'пункты':

  • "SubjectID" (первичный ключ, цифровой, автоинкремент)
  • "Тема"
  • "Автор"
  • "PostedDate"
  • " Корпус "

Столбцы в таблице 'item_tags':

  • «SubjectID» (первичный ключ, внешний ключ)
  • «Тег» (первичный ключ)

Для заполнения данных таким способом, сначала нужно вставить строку в таблице пунктов, затем получите сгенерированный SubjectID, а затем используйте этот SubjectID, чтобы вставить столько тегов, сколько вы хотите в таблице item_tags.

Смежные вопросы