
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
30.03.2011, 18:58
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
Делаю онлайн игрушку. Имеется допустим 100 разных объектов. Каждый объект имеет по отношению к другому объекту определенное свойство - пусть будет описание. У меня в игре появляется десяток объектов. При клике на пару объектов всплывает это свойство (описание). Все эти свойства хранятся в таблицах mySQL. Не подскажите как лучше реализовать хранение данных в таблицах и как делать запрос для получения (например, id одного объекта и id второго - получает их свойство)? Естественно таблица 100х100 не вариант. Есть какое-то решение, сейчас не вспомню как называется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2011, 21:11
|
|||
|---|---|---|---|
Структура таблиц - комбинация данных |
|||
|
#18+
Volgar, 2 таблицы: свойства и связи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. При связывании объектов добавляются 2 строки в Связи. Выбирать можно как-то так: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2011, 23:32
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
mvb, спасибо огромное. Только мне пока тяжело понять как будет формироваться таблица PROPERTY. Конкретный пример. TABLE LINKS 1 Огонь Вода 2 Вода Огонь 3 Огонь Воздух 4 Воздух Огонь 5 Воздух Вода 6 Вода Воздух 7 Песок Огонь 8 Огонь Песок ... и т. д. TABLE PROPERTY 1 Пар 2 Пар 3 Пожар 4 Пожар 5 Дождь 6 Дождь 7 Стекло 8 Стекло Правильно? Или можно как-то упростить? Чтобы повторов не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.03.2011, 23:54
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
Вернее для простоты нужно как то так: TABLE LINKS 1 1 2 2 1 3 3 1 4 4 1 5 5 2 3 6 2 4 7 2 5 8 3 4 9 3 5 10 4 5 ... и т. д. TABLE PROPERTY 1 1+2 2 1+3 3 1+4 4 1+5 5 2+3 6 2+4 7 2+5 8 3+4 9 3+5 10 4+5 Я сейчас проверил через PMD - не получается правильная выборка свойств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 12:51
|
|||
|---|---|---|---|
Структура таблиц - комбинация данных |
|||
|
#18+
Volgar, тогда лучше 3 таблицы - объекты, свойства и связи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. Код: plaintext 1. 2. 3. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 15:21
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
mvb, я извиняюсь, вроде работает, но как-то мой первоначальный пример не очень точный. Лучше с цифрами. Вот у меня есть объекты 1, 2, 3, 4, 5 (это для примера в реальности их значительно больше). Все возможные комбинации их сочетаний: 1+2, 1+3, 1+4, 1+5, 2+3, 2+4, 2+5, 3+4, 3+5, 4+5. Если делаю так, то ваша выборка не работает. CREATE TABLE IF NOT EXISTS `LINKS` ( `ID` int(11) NOT NULL, `ID_OBJ` int(11) DEFAULT NULL, `ID_PROP` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; INSERT INTO `LINKS` (`ID`, `ID_OBJ`, `ID_PROP`) VALUES (1, 1, 2), (2, 1, 2), (3, 1, 4), (4, 1, 5), (5, 2, 3), (6, 2, 4), (7, 2, 5), (8, 3, 4), (9, 3, 5), (10, 4, 5); CREATE TABLE IF NOT EXISTS `OBJECTS` ( `ID` int(11) NOT NULL, `NAME` varchar(220) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; INSERT INTO `OBJECTS` (`ID`, `NAME`) VALUES (1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5'); CREATE TABLE IF NOT EXISTS `PROPERTY` ( `ID` int(11) NOT NULL, `PROP1` varchar(220) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; INSERT INTO `PROPERTY` (`ID`, `PROP1`) VALUES (1, '1+2'), (2, '1+3'), (3, '1+4'), (4, '1+5'), (5, '2+3'), (6, '2+4'), (7, '2+5'), (8, '3+4'), (9, '3+5'), (10, '4+5'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 17:09
|
|||
|---|---|---|---|
Структура таблиц - комбинация данных |
|||
|
#18+
Volgarmvb, я извиняюсь, вроде работает, Если делаю так, то ваша выборка не работает. Ты бы уже определился - работает или нет, и если не работает - как именно не работает?VolgarINSERT INTO `LINKS` (`ID`, `ID_OBJ`, `ID_PROP`) VALUES (1, 1, 2), (2, 1, 2), зачем один и тот же объект (1) два раза ссылается на одно и то же свойство (2)? Пример: Есть объект 1 и объект 2. Есть свойство "1-2" (его код=1). Чтобы добавить эту зависимость в базу, надо выполнить 2 вставки: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 17:15
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
Ты бы уже определился - работает или нет, и если не работает - как именно не работает? Работает в примере со словами и не работает с цифрами. зачем один и тот же объект (1) два раза ссылается на одно и то же свойство (2)? Извиняюсь. Это ошибка. Должно быть: NSERT INTO `LINKS` (`ID`, `ID_OBJ`, `ID_PROP`) VALUES (1, 1, 2), (2, 1, 3), (3, 1, 4), ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 17:17
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
mvb, по второй части сейчас проверю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.03.2011, 17:31
|
|||
|---|---|---|---|
|
|||
Структура таблиц - комбинация данных |
|||
|
#18+
mvb, отлично! Теперь все как нужно. Правда немного напрягает необходимость составлять вручную огромную таблицу связей. Нет ли способа как этот процесс механизировать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1542235]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 520ms |

| 0 / 0 |
