Как я могу хранить массив ссылок в строке? Например, если бы я сделал онлайн-карточную игру, у меня был бы стол со всеми картами, и у каждого игрока была бы колода, представленная списком идентификационных ссылок.MySQL - хранение массива ссылок в каждой строке
ответ
Я бы сделал отдельную таблицу отношений для этого, с card_owner_id
и card_id
как поля. Установите внешние ключи, чтобы автоматически удалить отношения, когда карта или пользователь удалены.
, так что бы я использовал что-то вроде 'SELECT * FROM cards WHERE card_id = (SELECT card_id FROM user_cards WHERE card_owner_id = $ user_id)' для получения пользовательских карточек? – nkorth
Вы можете использовать соединение, чтобы получить их: 'SELECT c. * FROM cards AS c LEFT JOIN user_cards AS uc ON (uc.card_id = c.id AND uc.card_owner_id = $ user_id)'. – Kaivosukeltaja
Как насчет одного стола для игроков, один для карт и один для колод (который связывает playerId и cardId)?
Два решения:
- сериализовать массив PHP и сохранить его в бинарном поле вашей таблицы.
- Создайте свою базу данных так, чтобы вы могли представить такое отношение: «у игрока несколько карт»: Player (player_id); Карточка (card_id, player_id)
Каждый игрок может иметь строку в таблице «игроков»; и каждая из этих строк может иметь поле для каждой из возможных карт; и каждая из этих ячеек может быть помечена как истинная или ложная, чтобы обозначить принадлежность игрока или не иметь соответствующую карточку.
Будет ли это работать, как вы думаете?
- Pete
Пожалуйста, не подписывайте сообщения на SO. –
Я думал о том, что размер фиксированной колоды и количество полей в таблице пользователя, но это действительно показалось неэффективным. – nkorth
- 1. Хранение массива в MySQL
- 2. Хранение массива массивов в mysql
- 3. Хранение данных в строке JSON против MYSQL
- 4. Хранение «массива» данных в mysql
- 5. Хранение двоичного массива в MySQL
- 6. Хранение массива в таблице MySQL
- 7. Хранение ссылок в словарях Swift
- 8. Хранение результатов каждой операции столбца в отдельной строке в свинке
- 9. Печать массива лексем одной в каждой строке
- 10. Применение функции в каждой строке массива numpy
- 11. Минимальное значение в каждой строке массива
- 12. сохранение значений массива в каждой новой строке
- 13. Инициализация массива awk в каждой строке завершается
- 14. Хранение ссылок на карте
- 15. Хранение ассоциативного массива в MySQL DB
- 16. Хранение массива как одной записи в mysql
- 17. Хранение массива в базе данных MySQL
- 18. Хранение массива matlab в MySQL. Опять
- 19. PHP/MySQL - Хранение массива в базе данных
- 20. Хранение данных в таблице ссылок
- 21. Хранение слабых ссылок в NSMutableDictionary
- 22. Хранение ссылок в базе данных
- 23. Хранение ссылок в памяти стека
- 24. Как добавить к каждой строке в MySQL?
- 25. Хранение нескольких ссылок в одном поле
- 26. Состав объекта: хранение ссылок и идентификаторов ссылок
- 27. Хранение массивов в MySQL?
- 28. Хранение в строке
- 29. JTextArea Хранение каждой строки
- 30. Хранение Emoji's в MySQL
Каждый раз, когда вы склонны хранить массив значений в одном столбце базы данных, мигающие красные огни и клаксоны должны уйти в вашей голове, предупреждая вас, что ваш дизайн БД должен лучше нормализуется. –
@ Кристофер - вы понимаете, что проблема в дизайне базы данных, а не в хранении языковых конструкций в реляционной системе баз данных? –
@ Микаэль, я действительно верю, что слишком быстро прочитал вопрос, и мой мозг ушел по касательной; моя вина. – Christopher