![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
maxipub |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Добрый день!
Думаю, у такой задачи есть некая терминология, но раз я о ней не знаю, то и не очень понимаю как назвать тему. Итак, дано:
С первой таблицей все понятно. Туда (в теории ![]() Нужно сделать так, чтобы в таблице my_2 поле sub_id для каждого конкретного id вело себя так, как сам my_1.id, можно ли такое сделать средствами MySQL? Т.е. вставляем в пустую таблицу id=1, sub_id для этой строки автоматом устанавливается = 1, вставляем еще один id=1, sub_id устанавливается = 2, вставляем id=2 - sub_id=1, id=3 - sub_id=1, id=1 - sub_id = 3 и т.д... Как часто бывает, пока писал вопрос, решение вроде бы нашлось само собой. Поменял структуру my_2 на такую:
Вроде бы все работает как раз как надо. ![]() ![]() |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Ровно настолько, насколько это описывается документацией.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
Правда есть одна тонкость:
-------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Ну на самом деле там больше тонкостей...
К тому же неизвестен физический смысл этого sub_id - может, динамическая нумерация в пределах группы в запросе будет более правильным решением, чем статическое хранение этого дополнительного атрибута. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Это убрать вообще поле sub_id и считать его непосредственно в запросе. Типа
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Akina, спасибо, но лучше буду хранить, такой вариант для меня слишком навороченный.
![]() А вот если расскажите еще про: Буду крайне благодарен. Переделываю большой старый, а главное - работающий проект. Там сейчас все частично на БД, частично на файлах. И вот эти sub_id на данный момент вообще хранятся сериализованном виде в php-инклудах. По большому плану я не сильно заморачиваюсь как все работает. Пусть разработчики не супер красиво реализовали его, но работает. Просто новый функционал который нужно допилить не удастся сделать без СУБД, иначе на каждый запрос надо будет инклудить все (сотни тысяч) этих php-инклудов, коллекционировать и сортировать в них инфу, в общем, это не вариант на файлах делать, надо переносить все это дело в БД. А на файлах там просто реализовано, один id - один id.php файл, данные - сериализованный php массив-список с добавление нового элемента как $_arr[] = $new; Это сообщение отредактировал(а) maxipub - 30.6.2016, 10:32 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Основное - жёсткая привязка к движку. Только MyISAM, безальтернативно. Со всеми следствиями этого факта. Повторное использование - тоже неприятно, поскольку не обеспечивается уникальность в течение периода жизни таблицы, и возможно разрушение непротиворечивости данных. И ещё там были какие-то заморочки (не помню, какие именно) при FK на этот индекс с каскадированием. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |