1

Тема: Помогите разобраться с сылками, ключами, индексами

Вопросик по phpMyAdmin
Как создавать связи тама? Дизайнера настроил (намучался конечно  :oops: )
Структура 2х таблиц такая:

tbl_users
Поле               Тип                          Null    По умолчанию    Связи
user_id      int(4)                          Нет           
username     varchar(25)               Нет           
password     varchar(32)               Нет           
email                varchar(75)               Нет           
department     enum('OFFICE', 'RETAIL')    Нет    OFFICE       
access                enum('Y', 'N')               Нет    N

Имя индекса    Тип    Уникальный    Упакован    Поле    Уникальных элементов    Сравнение   
PRIMARY    BTREE    Да               Нет                ID_user               4                   A       
username    BTREE    Да               Нет               username    4                   A
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

tbl_fild
Поле               Тип                          Null    По умолчанию    Связи   
fild_id                int(4)                          Нет                   tbl_users -> ID_user       
fild_admin     enum('Y', 'N')               Да    N           
fild_office     enum('Y', 'N')               Да    N           
fild_retail     enum('Y', 'N')               Да    N

Имя индекса    Тип    Уникальный    Упакован    Поле    Уникальных элементов    Сравнение   
PRIMARY    BTREE    Да               Нет               fild_id    0                            A

Как сделать, чтобы при добвлении юзера, создавались поля fild_admin, fild_office, fild_retail с значением N.
Сейчас данные в таблицу tbl_users добавляются а соответствующие записи в tbl_fild не создаются.
Хэлп плиз.

2

Re: Помогите разобраться с сылками, ключами, индексами

zver911
В сзязанной таблице записи добавляться и не должны.

Вероятно я не смог понять что именно вы делаете, но по идее смысла в двух таблицах здесь нет. Вполне можно объединить поля в одну таблицу.

3

Re: Помогите разобраться с сылками, ключами, индексами

Hanut
Согласен, просто для наглядности хотел бы вынести во вторую таблицу доступные окна и проверяя пользователя давать права на доступ к окну. В будущем расширяя проект для других отделов будут появляться новые столбцы во второй таблице.
Перефразирую: Как связать tbl_users.user_id с tbl_fild.fild_id, чтобы при создании значения в tbl_users, автоматически создавалось значение в tbl_fild с заполнеными по умолчанию полями буквой N

4

Re: Помогите разобраться с сылками, ключами, индексами

zver911
Автоматически эти поля можно заполнить создав процедуру, но я все-равно не вижу в этом особого смысла, так как проще вписать данные вторым запросом.

Первым запросом вставили данные в таблицу tbl_users, получили mysql_insert_id() и записали данные в tbl_fild.

5

Re: Помогите разобраться с сылками, ключами, индексами

Hanut
Спасибо, но вторую таблицу я заменил одним полем с типом SET.
Подскажите из собственно опыта, целесообразно делать мало таблиц с большим количеством полей или много таблиц с меньшим количеством полей?

6

Re: Помогите разобраться с сылками, ключами, индексами

zver911
Все зависит от самой структуры таблицы, ее индексов, как будет осуществляться выборка. Здесь правил нет, есть только опыт и здравый смысл.

7

Re: Помогите разобраться с сылками, ключами, индексами

В таблице tbl_users есть поля users_navigation и users_name типа SET.
Как извлеч значения users_navigation для юзера zver911?
Как определяются значения поля типа SET? Value = 1? - не работает :-( Где посмотреть свойства объектов на которые можно ссылаться посредством SQL?
ПС: литературу почитал - не помогает :-(
ХЭЛП ПЛИЗ

8

Re: Помогите разобраться с сылками, ключами, индексами

zver911 сказал:

Как извлеч значения users_navigation для юзера zver911?

SELECT `users_navigation` FROM `tbl_users` WHERE `users_name` = 'zver911';
zver911 сказал:

Как определяются значения поля типа SET? Value = 1? - не работает

Не понял на счет определения значений. Добавление в SET нового значения или просто запись в это поле?

zver911 сказал:

Где посмотреть свойства объектов на которые можно ссылаться посредством SQL?

Совсем не понял вопрос.

9

Re: Помогите разобраться с сылками, ключами, индексами

Сорри - набирал 'users_navigation' не те кавычки
SELECT 'users_navigation' FROM `tbl_users` WHERE `users_name`='alazarev' вместо
SELECT `users_navigation` FROM `tbl_users` WHERE `users_name` = 'zver911'
Пасибо большое, перечитаю синтаксис SQL - что-то я малость переработался lol