Динамическое управление данными проекта с формами и MySQL - PullRequest
1 голос
/ 26 января 2012

В настоящее время я отвечаю за создание веб-приложения для управления проектами для отдела, в котором я работаю. У каждого проекта есть множество различных точек данных, которые описывают его, и мой первый план состоял в том, чтобы просто создать таблицу в базе данных mysql и HTML-форма для управления данными в этой таблице.

Мои менеджеры просто сообщили мне, что им понадобится иметь возможность добавлять / удалять точки данных для проектов в случае изменения их рабочего процесса и отслеживания проекта. (Это может произойти несколько раз в год, если вообще случится)

Поэтому я пытаюсь найти лучший способ хранения этих данных в MySQL. Первый подход, который пришел в голову, - это дать им интерфейс, который позволит им добавлять столбцы в таблицу «проектов». и иметь «главную» таблицу, которая отслеживает все имена столбцов и типы данных. Но это похоже на ДЕЙСТВИТЕЛЬНО Плохую идею и немного кошмар, чтобы поддерживать.

Другим возможным вариантом было бы добавить в интерфейс новую таблицу, в которой хранится вся информация для этой точки данных и идентификатор проекта, который использует данные.

Я понимаю, что оба из них могут быть очень странными способами. Если есть лучший способ, я хотел бы услышать об этом. Если мне нужно что-то уточнить, дайте мне знать.

Спасибо за ваше время

1 Ответ

1 голос
/ 26 января 2012
CREATE TABLE projects (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL
)

CREATE TABLE datapoints (
  id INT PRIMARY KEY AUTO_INCREMENT,
  projectid INT NOT NULL,
  name VARCHAR(50) NOT NULL,
  value VARCHAR(250) NOT NULL,
  INDEX(projectid),
  INDEX(name)
)

Если вы хотите больше фантазии, сделайте одно или несколько из

  • Поместить имена точек данных в таблицу, указав их вместо имен в точках таблицы
  • У точек данных есть поля для каждой из числовых, ям, текста, длинных текстов ИЛИ использовать разные таблицы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...