Как лучше хранить в бд (сейчас это двумерный массив)?
Доброго времени!
Есть массив
$price_list(Работник 1) = array(
0 => array(0 => 'Работа 1', 1 => 'Цена за работу'),
1 => array(0 => 'Работа 2', 1 => 'Цена за работу'),
и т.д.
Хочу данный массив перенести в БД и таких $price_list(Работник 'N') будет по мере добавляться больше.
Количество работ постоянно - два десятка.
Думал делать две таблицы и объединять их общим ключем....
id | id_worker | name_work_1 | name_work_n и id_work | price_work_1 | price_work_n
У worker будет отдельная таблица (логин, пароль, и прочее).
В вашем случаи придется для каждого worker создавать отдельно таблицу work.... я правильно понял? Или я что то не понимаю?
denop: не правильно, у вас есть ОДНА таблица сотрудников и ОДНА таблица работ хранящая информацию о них в том числе и идентификатор работника который выполнил работу
denop: ну так измените названия таблиц, Work -> Works_price, и создайте другую, которая будет содержать виды работ, тогда из таблицы Works_price будет два внешних ключа это worker_id, и work_id
denop: Все зависит от того может ли сотрудник выполнять разные виды работ, если да то используйте схему @Максим Федоров, если нет то удалите из таблицы Work Worker_id и добавте в Worker поле work_id
denop: Если количество работ и их названия статичны, то можно так:
таблица worker: в которой есть id
таблица worker_price:
- id
- worker_id
- work_type_id
- price
а дальше либо еще одна таблица work_type:
id | name | sort | icon и т.д.
или просто 2 метода в моделе:
public static function getWorkTypeList(){
return [1=>'работа в туалете', 2=>'работа руками'];
}
public function getWorkName(){
$list = self::getWorkTyprList();
return $list[$this->work_type_id];
}