2012-01-26 2 views
1

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

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

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

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

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

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

ответ

1
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) 
) 

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

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