Доброе утро! Есть сайт технической поддержки. И есть пользователи, которые оставляют на нем заявку в компанию. На нем есть таблица с полями: id_client(id пользователя AI, PK), name_client(Имя потльзователя), status(статус - наверное лучше сделать автоинкремент), date_r(дата регистрации). Статусы у всех пользователей будут разные. Например: у пользователя 1: открыто, отменено, закрыто, передано, принято. у пользователя 2: открыто, отменено, закрыто, исполнено, в ожидании. Статусы в любое время могут добавляться( не удаляются). Я сделал так: Вторая таблица такая: id_status, id_client, open, close, cancelled, sent, accepted. id_status - AI PK, id_client - указывает на первую таблицу на пользователя, другие поля сами статусы и имеют значение enum: '0', '1' - в зависимости присутствует для пользователя ставиться 0 или 1. Когда необходимо добавлять статус какому либо клиенту сначала ставлю 1 для нужного пользователя, а для всех других проставляю 0. Может можно реализовать попроще?
Связь "статус" - "пользователь" называется один-ко-многим (один статус может быть у многих пользователей). Поэтому делается отдельно таблица statuses (id, status_name), а в таблице пользователей просто целое поле status_id, и всё, не нужно ничего обнулять и т.п. Ставишь нужный status_id и радуешься --- Добавлено --- http://habrahabr.ru/post/193136/, http://habrahabr.ru/post/193284/, https://habrahabr.ru/post/193380/ - вот, прочитай для начала, какие вообще бывают связи
Вы имеете виду в таблице пользователей в поле status_id хранить несколько значений id из таблицы statuses разделенных разделителями или как?
У каждого клиента должны быть видны несколько статусов для выбора (только ему принадлежащие), а у другого клиента (другие статусы, принадлежащие именно ко второму клиенту)
Этого в первом посте не было. ОК, тогда связь называется "многие-ко-многим" и делается через промежуточную таблицу. В ссылках на хабр, которые я дал, она тоже описана.
Ок спасибо! Только на хабре написано объяснение. Я сам как бы представляю как она выглядит. Я спрашиваю реализацию на php. Какие таблицы будут у столбцов и их связь.
Ну там написано достаточно, чтобы сообразить самому. Промежуточная таблица с полями user_id, status_id. Соответственно, сколько статусов у пользователя - столько записей про него в этой таблице.