Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.135.246.193] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Здравствуйте, помогите реорганизовать существующую таблицу под новые требования:
Есть база данных на предприятиях (на структурных подразделениях) с данными только о текущем подразделении: База MySQL SET NAMES 'utf8'; USE PCSBD; -- -- Описание для таблицы downtime -- CREATE TABLE downtime( IndexElement SMALLINT (6) NOT NULL DEFAULT -1, DateTim DATETIME NOT NULL, downtime_min INT (11) NOT NULL DEFAULT 0, operationtime_min INT (11) NOT NULL DEFAULT 0, column1 INT (11) DEFAULT 0, prjID VARCHAR (20) DEFAULT NULL ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы log_parametrs -- CREATE TABLE log_parametrs( ind INT (11) NOT NULL AUTO_INCREMENT, adrrController INT (4) NOT NULL DEFAULT 0, Port INT (2) DEFAULT NULL, IndexElement INT (4) NOT NULL DEFAULT -1, portValue INT (2) NOT NULL DEFAULT -1, portMeter INT (11) DEFAULT -1, date_0 DATE NOT NULL, time_0 TIME NOT NULL, prjID VARCHAR (20) DEFAULT NULL, PRIMARY KEY (ind) ) ENGINE = MYISAM AUTO_INCREMENT = 1 CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы meters -- CREATE TABLE meters( id INT (11) NOT NULL AUTO_INCREMENT, IndexElement INT (10) NOT NULL DEFAULT 0, dates DATETIME DEFAULT NULL, date_day DATE DEFAULT NULL, date_time TIME DEFAULT NULL, meter INT (11) DEFAULT NULL, metertype VARCHAR (20) DEFAULT NULL, prjID VARCHAR (20) DEFAULT NULL, PRIMARY KEY (id), INDEX IndexElement USING BTREE (IndexElement), INDEX id USING BTREE (id) ) ENGINE = MYISAM AUTO_INCREMENT = 1 CHARACTER SET cp1251 COLLATE cp1251_general_ci PACK_KEYS = 1; -- -- Описание для таблицы ProgVerToUpdates -- CREATE TABLE ProgVerToUpdates( ProgramVer VARCHAR (20) DEFAULT NULL, BDVer VARCHAR (20) DEFAULT NULL, LastUpdates VARCHAR (20) DEFAULT NULL ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы Project -- CREATE TABLE Project( ID INT (11) NOT NULL AUTO_INCREMENT, prjID VARCHAR (20) DEFAULT NULL, prjName VARCHAR (50) DEFAULT NULL, prjPath TEXT DEFAULT NULL, lastEdit VARCHAR (20) DEFAULT NULL, lastOpen VARCHAR (20) DEFAULT NULL, PRIMARY KEY (ID) ) ENGINE = MYISAM AUTO_INCREMENT = 15 CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы tb_dates -- CREATE TABLE tb_dates( id INT (11) NOT NULL, param VARCHAR (255) DEFAULT NULL, dtime DATETIME DEFAULT NULL, adr INT (11) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы tb_shem -- CREATE TABLE tb_shem( col INT (11) NOT NULL, num INT (11) DEFAULT NULL, last_prj MEDIUMTEXT DEFAULT NULL, prj_param MEDIUMTEXT DEFAULT NULL, PRIMARY KEY (col) ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci ROW_FORMAT = DYNAMIC; -- -- Описание для таблицы UserLogs -- CREATE TABLE UserLogs( User VARCHAR (255) NOT NULL, DateTim DATETIME DEFAULT NULL, Operations VARCHAR (1024) DEFAULT NULL, Details VARCHAR (1024) DEFAULT NULL, Clas INT (3) DEFAULT 0 ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы Users -- CREATE TABLE Users( User VARCHAR (255) NOT NULL, `Password` VARCHAR (255) NOT NULL, USER_PRIVILEGES VARCHAR (20) NOT NULL, UNIQUE INDEX User USING BTREE (User) ) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы work_shifts -- CREATE TABLE work_shifts( id INT (11) NOT NULL AUTO_INCREMENT, Shifts INT (2) DEFAULT NULL, StartTime TIME DEFAULT NULL, timeLength INT (6) DEFAULT NULL, moreInt_0 INT (11) DEFAULT NULL, moreInt_1 INT (11) DEFAULT NULL, moreFloat_0 FLOAT DEFAULT NULL, moreFloat_1 FLOAT DEFAULT NULL, moreTime TIME DEFAULT NULL, moreDate DATE DEFAULT NULL, moreString VARCHAR (50) DEFAULT NULL, prjID VARCHAR (20) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE = MYISAM AUTO_INCREMENT = 53 CHARACTER SET cp1251 COLLATE cp1251_general_ci; -- -- Описание для таблицы works -- CREATE TABLE works( id INT (11) NOT NULL AUTO_INCREMENT, IndexElement INT (10) NOT NULL DEFAULT 0, dates DATETIME DEFAULT NULL, date_day DATE DEFAULT NULL, date_time TIME DEFAULT NULL, on_e TINYINT (1) DEFAULT NULL, off_e TINYINT (1) DEFAULT NULL, starterror TINYINT (1) DEFAULT NULL, prjID VARCHAR (20) DEFAULT NULL, PRIMARY KEY (id), INDEX IndexElement USING BTREE (IndexElement), INDEX id USING BTREE (id), INDEX inddatetime USING BTREE (dates) ) ENGINE = MYISAM AUTO_INCREMENT = 98746163 CHARACTER SET cp1251 COLLATE cp1251_general_ci PACK_KEYS = 1; /*!40014 SET FOREIGN_KEY_CHECKS = @OLD_FOREIGN_KEY_CHECKS */; Сейчас требуют установить эту БД еще на другие структурные подразделения и в главный офис Структура предприятия : главный офис |__региональный офис 1 |_____________ структурные подразделения 1 |_____________ структурные подразделения 2 |_____________ структурные подразделения N ………………………….. |__региональный офис N |_____________ структурные подразделения 1 |_____________ структурные подразделения 2 |_____________ структурные подразделения N надо создать свои БД под все подразделения и офисы а затем объединить все в одну БД в главный офис. вот так : Прикреплённый файл02.gif (16,16 Кбайт, скачиваний: 561) брать данные только с таблиц Users, works, Project, tb_dates, tb_shem И ложить/класть на уровень выше Вот не знаю как правильно изменить существующую БД с данными так чтобы не повредить данные и так чтоб в главном офисе было понятно с какого структурного подразделения данные |
Сообщ.
#2
,
|
|
|
Поскольку мы все поголовно - сотрудники твоей организации, ежедневно работающие с этой базой, объяснять нам, что в неё запихано и с какой логикой, конечно, не требуется...
|
Сообщ.
#3
,
|
|
|
есть программа которая собирает данные с устройств и заполняет ими БД
Таблица Users - пользователи которые имеют доступ к системе (логин пароль права доступа) в таблицах tb_dates, tb_shem информация об этих устройствах в таблице works журнал работы утройств в таблице Project отчетные данные теперь необходимо чтоб данные из этих таблиц на "структурном подразделении1" и "структурном подразделении N" собирались в такойже БД, но на "региональном офисе" только с той разницей что в БД на региональном офисе можно было определить с какого структурного подразделения эти данные |
Сообщ.
#4
,
|
|
|
Цитата Penumbra @ Никак. Надо новую БД делать. С учётом ляпов старой БД.Вот не знаю как правильно изменить существующую БД Цитата Penumbra @ А кто мешает соответствующие словарик и айди добавить?в БД на региональном офисе можно было определить с какого структурного подразделения эти данные ЗЫ - Цитата Akina @ Более того, сотрудники подразделения, которое эту БД ведёт ... Поскольку мы все поголовно - сотрудники твоей организации... |
Сообщ.
#5
,
|
|
|
Цитата #SI# @ А кто мешает соответствующие словарик и айди добавить? поподробней можно? ибо я и так думал про это но не знаю куда запихнуть Цитата #SI# @ Никак. Надо новую БД делать. С учётом ляпов старой БД. ведь можно в существующую таблицу добавить колонку еще одну, но тогда, наверное, придется все данные заново добавлять |
Сообщ.
#6
,
|
|
|
0ффтоп
чегото форум ошибку выдает Mail Error! Could not send the email Failed at 'mail' command |
Сообщ.
#7
,
|
|
|
Цитата Penumbra @ В таблицы данных - куда же ещё! но не знаю куда запихнуть ЗЫ - Mail Error тоже был. Тоже удалил дубль ! --- Опять то же самое! ЗЗЫ - а при редактировании - всё ОК! Следующий пост - дубль, посему щяс удалю. |
Сообщ.
#8
,
|
|
|
А вот тут удалён дубль!
Админы на масленицу перебрали??? |
Сообщ.
#9
,
|
|
|
Penumbra чуть более высокоуровневая модель (ER диаграмма, к примеру) дала бы больше информации, чем этот скрипт.
Самое простое решение, с моей точки зрения, БД одна, сервер доступен 24/7 каждое подразделение пишет данные со своим ID подразделения в ЕДИНУЮ БД. Но тут уже звучал ряд вопросов про "процессы" которые формируют/используют "данные". Без них подсказать куда копать крайне сложно. К примеру, если данные недельной давности для головного офиса есть гуд, это одно. Если данные секундной давности считаются устаревшими - то твоя схема с кучей "биде" обречена на провал. |