Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: базы данных

Войти
Регистрация
Восстановить пароль
 
tarabukinivan
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 68
#1

Как реализовать структуру БД - PHP БД

13.01.2018, 10:18. Просмотров 143. Ответов 5
Метки нет (Все метки)

Доброе утро!
Есть сайт технической поддержки. И есть пользователи, которые оставляют на нем заявку в компанию. На нем есть таблица с полями: 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.

Может можно реализовать попроще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2018, 10:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать структуру БД (PHP БД):

Как организовать структуру приложения - PHP БД
Всем доброго времени суток. У меня есть MS Sql сервер. Там в БД есть таблицы: Abiturient - Абитуриенты ID int FacultyID int ...

Как организовать структуру пользователей? - PHP БД
Здравствуйте, как организовать структуру пользователей? Есть 3 вида пользователей: админ, оператор и клиент. У каждого типа...

Посоветуйте как сделать структуру таблицы - PHP БД
Я не долго учу пхп и мускул, поэтому хочу спросить совета. Как лучше сделать таблицы, в которые нужно записывать, допустим 5 чисел за месяц...

Как лучше организовать такую структуру базы данных? - PHP БД
Добрый день, как лучше организовать такую структуру базы данных, есть имя пользователя для этого пользователя группы таблиц в бд. ...

Подскажите, как лучше создать структуру БД MySQL 5. На конкретном примере - PHP БД
Здравствуйте! Подсабите пожалуйста в создании БД. Задача: создать 2-е таблицы. (1-я: Номер_Заказа, ФИО, Контакт-ая_инф. 2-я:...

Как хранить стили в бд или как вообще это реализовать - PHP
Имеется: Скрипт вывода таблицы с нужными полями из базы мускула. Он просто выводит все нужные поля из определенной таблицы, а также есть...

5
EU1CJ
26 / 26 / 12
Регистрация: 23.12.2017
Сообщений: 102
13.01.2018, 19:48 #2
Как я понимаю, все пять статусов работают по принципу "ИЛИ". То есть, активным статусом может быть только один из них.
Так может проще сделать как-то так:
SQL
1
2
3
4
5
6
7
CREATE TABLE `statuses` (
`id_status` INT(10) NOT NULL AUTO_INCREMENT,
`id_client` INT (10) NOT NULL,
`status` ENUM('open', 'close', 'cancelled', 'sent', `accepted`) NOT NULL DEFAULT 'open', -- или что там по умолчанию
PRIMARY KEY (`id_status`),
UNIQUE KEY `status_client` (`id_status`, `id_client`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Ну, или какой engine у Вас используется.
На мой взгляд, с данными удобней работать будет.
0
tarabukinivan
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 68
14.01.2018, 08:19  [ТС] #3
Дело в том, что у каждого клиента должны быть видны несколько статусов для выбора (только ему принадлежащие), а у другого клиента (другие статусы, принадлежащие именно ко второму клиенту)

Связь один ко многим
0
Sternman
30 / 31 / 11
Регистрация: 10.01.2018
Сообщений: 175
Завершенные тесты: 2
14.01.2018, 11:07 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
tarabukinivan,

tb_status
id(pk ai) | status_name | descrip |

tb_user_status
id(pk ai) | status_id/status_name(fk) | id_user(fk)

SQL
1
SELECT status_name FROM user_status WHERE id_user = "1"
Не вариант?
0
EU1CJ
26 / 26 / 12
Регистрация: 23.12.2017
Сообщений: 102
14.01.2018, 12:00 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от tarabukinivan Посмотреть сообщение
Дело в том, что у каждого клиента должны быть видны несколько статусов для выбора (только ему принадлежащие), а у другого клиента (другие статусы, принадлежащие именно ко второму клиенту)
Ну, так и в чём проблема? В базе записи:
SQL
1
2
3
4
5
6
7
8
-- для клиента №1:
1, 1, 'open'
2, 1, 'close'
3, 1, 'cancelled'
-- для клиента №2:
4, 2, 'open'
5, 2, 'accepted'
6, 2, 'sent'
И выводите их в dropdown list box на front-end.
Просто, наверное, смутило название поля 'status_id'... Переименовать можно.
Хотя, дело, конечно, личное. Это просто предложение.

Добавлено через 5 минут
Или связку добавить, как Sternman предлагает.
Пригодится для maintenance "statuses" table в перспективе.
Тогда записи в баже вот так выглядеть будут:
SQL
1
2
3
4
5
6
7
8
-- для клиента №1:
1, 1, 1
2, 1, 2
3, 1, 4
-- для клиента №2:
4, 2, 2
5, 2, 1
6, 2, 3
Так даже ещё гибче будет. Да и правильней, я думаю.
0
tarabukinivan
0 / 0 / 0
Регистрация: 12.08.2011
Сообщений: 68
14.01.2018, 16:19  [ТС] #6
Ну да, что-то типа такого должно быть.
0
14.01.2018, 16:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2018, 16:19
Привет! Вот еще темы с ответами:

как реализовать поиск наподобие как в гугле - PHP БД
Доброго времени суток. Встала задача реализовать поиск. Прошу помощи. Сайт на php, поиск внутри MySQL/ Что реализовано: Реализован...

Как реализовать структуру на js? - JavaScript
struct klass { char name; char klass_name; float bal; }; как реализовать такое на js и как обращаться к елементам...

Как реализовать структуру - C++
Доброго времени суток. Никак не могу скомпиллировать эту структуру. struct tree{ char inf; list<tree*> lt;}; Выдает вот эти ошибки ...

Как лучше реализовать структуру класса? - C++
Есть задача создать класс авто-архив. Класс реализовал со структурой внутри класса. Создал указатель на структуру с полями, марка, модель,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru