61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
1 | |
Связи в таблицах26.12.2012, 20:51. Показов 1110. Ответов 11
Метки нет (Все метки)
К примеру есть 4 таблицы
users [id] users_profile [user_id = users.id] users_log [users_id = users.id] users_files [users_id = users.id] Они все связанны полем users_id. Тоесть в таблицах (users_profile, users_log, users_files) user_id = id таблице users. Теперь ситуация, регистрируется пользователь и при регистрации должны создаваться поле в таблицах (users_profile, users_log, users_files), где user_id = id. Так же самое если амин удаляет к примеру пользователя из базы, то во всех таблицах (users_profile, users_log, users_files) удаляется все записи, где user_id = id (при создании создается 1 запись, при удалении удаляются все записи) Подскажите пожалуйста самый адекватный способ такой реализации ? Использовать триггеры ? или написать функцию, которая по крону запускалась и выполняла эти проверки ?или 3 вариант ... ?
0
|
26.12.2012, 20:51 | |
Ответы с готовыми решениями:
11
Связи в таблицах в phpMyAdmin Связи в таблицах Связи в таблицах Связи в таблицах |
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
26.12.2012, 22:47 | 2 |
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
26.12.2012, 23:26 [ТС] | 3 |
а для создания записей так же ?
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
27.12.2012, 10:12 | 4 |
Создавать строки надо во всех таблицах отдельно, ибо автоматом - неоднозначность
0
|
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
|
|
27.12.2012, 12:09 [ТС] | 5 |
тоесть вы считаете, что лучше написать функцию, которая будет проверять строки других таблиц ориентируясь по users ?
тоесть кинуть ее в задание крона и пусть она проверяет все дела, если нужных записей нет - создает, а лишние удаляет ?
0
|
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
|
|
27.12.2012, 12:52 | 6 |
Зачем крон? Создать процедуру регистрации пользователя, которая вызывается при этой самой регистрации и создает нужные записи во всех нужных таблицах
0
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
27.12.2012, 18:13 | 7 |
Я извиняюсь, пропустил создание записей Не помню(а может и не знал) как в mysql с триггерами, но не важно. Можно поручить создание записи - хранимой процедуре, а если уж на то пошло то и удаление... На хабре как-то мусолили вопрос, по поводу использования хранимок для обеспечения целостности базы и функционирования бизнес-логики. К решению так и не пришли. Кто-то считает, что вся бизнес логика должна быть в субд(что дает ей самодостаточность), а кто-то считает что логика должна быть в php(или другом) клиенте. вопрос стратегии проекта.. Я за хранимки, имхо это скорость и независимость от клиента..
зы. а про on delete cascade, это я про удаление родительской записи, мы обеспечим целостность без лишнего кода. создать новую запись, с созданием записей в дочерних таблицах так нельзя
0
|
9 / 9 / 0
Регистрация: 15.06.2010
Сообщений: 126
|
|||||||||||
27.12.2012, 20:41 | 8 | ||||||||||
А удалять пользователя можно всего одним запростом:
0
|
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
|
|
29.12.2012, 11:48 | 10 |
0
|
87 / 87 / 8
Регистрация: 02.09.2012
Сообщений: 510
|
|
29.12.2012, 15:05 | 11 |
Не по теме: А нас и здесь не плохо кормють? Все болемене развитые языки позволяют для разработки клиентов (уже как десяток лет) использовать плейсхолдеры. php не исключение... но мы все по старинке.. :D
0
|
9 / 9 / 0
Регистрация: 15.06.2010
Сообщений: 126
|
|
30.12.2012, 21:52 | 12 |
Не по теме: Да уже не раз мне и на работе это начальник говорил :( Да вот никак руки не доходят
0
|
30.12.2012, 21:52 | |
30.12.2012, 21:52 | |
Помогаю со студенческими работами здесь
12
Связи в таблицах Связи в таблицах бд Автомобили Создание связи в таблицах Не получается создать связи в таблицах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |