Я создаю интернет-магазин на PHP, используя платформу Codeigniter, но я знаю, как создать базу данных. Моя идея заключается в том, что в этом интернет-магазине будет полный набор функций и настроек (создание категорий, цветов, добавление товаров, функции файлового менеджера и многие другие). Но у каждого пользователя есть свои категории, свои цвета, свои товары … так что, возможно, между пользователями нет ничего общего. У пользователей есть уникальные u_ids. Должен ли я добавить идентификатор пользователя в каждую таблицу, которую я использую? Я приведу вам пример того, что я собираюсь сделать:
public function add_type_by_e_id($data = array(), $e_id = 0) {
if (!is_numeric($e_id)) {
$e_id = 0;
}
if (is_array($data) && count($data) > 0) {
$data['e_id'] = $e_id;
$this->db->insert($this->types, $data);
return $this->db->insert_id();
}
return false;
}
public function get_all_types_by_e_id($e_id = 0) {
if (!is_numeric($e_id)) {
$e_id = 0;
}
$this->db->from($this->types);
$this->db->where('e_id', $e_id);
$this->db->order_by('type', 'ASC');
$query = $this->db->get();
$result = $query->result();
$query->free_result();
if (count($result) > 0) {
return $result;
}
return false;
}
public function get_type_by_t_id_e_id($t_id = 0, $e_id = 0) {
if (!is_numeric($e_id)) {
$e_id = 0;
}
if (is_numeric($t_id) && $t_id > 0) {
$this->db->from($this->types);
$this->db->where('t_id', $t_id);
$this->db->where('e_id', $e_id);
$query = $this->db->get();
$result = $query->result();
$query->free_result();
if (count($result) > 0) {
return $result[0];
}
}
return false;
}
(На самом деле, $ e_id является идентификатором пользователя.) Мой вопрос заключается в том, является ли это лучшим и самым простым способом. Идея для этой «$ e_id thing» состоит в том, что я боюсь, что если в этом состоянии не будет $ e_id, какой-либо пользователь (или, возможно, ошибка в приложении) сможет получить данные другого пользователя.
Спасибо, и я жду ваших вопросов, потому что я чувствую, что это немного сбивает с толку. 🙂
Питер
Задача ещё не решена.
Других решений пока нет …