Нормализует CSV для MySQL? - PullRequest
       3

Нормализует CSV для MySQL?

2 голосов
/ 08 декабря 2011

Я новичок во всем, что касается "нормализованного стола".У меня есть CSV-файл с содержанием следующим образом:

Cell,Width(m),Length(m),Spacing(m),VDD(V),VSS(V),Temp,Param,Value,Path,TOOL
pmos_var12,5e-03,5e-03,5e-03,0.5,0,0,delay[s],4.65e-06,/home/user/tests/run2/pspice
pmos_var12,5e-03,5e-03,5e-03,0.5,0,10,delay[s],6.2e-06,/home/user/tests/run2/pspice
pmos_var12,5e-03,5e-03,5e-03,0.5,0,25,delay[s],7.46e-06,/home/user/tests/run2/pspice
pmos_var12,5e-03,5e-03,5e-03,0.5,0,70,delay[s],8.98e-06,/home/user/tests/run2/pspice
pmos_var12,5e-03,5e-03,5e-03,0.5,0,100,delay[s],9.56e-06,/home/user/tests/run2/pspice
nmos_var12,5e-03,5e-03,5e-03,0.5,0,0,delay[s],4.65e-06,/home/user/tests/run2/pspice
nmos_var12,5e-03,5e-03,5e-03,0.5,0,10,delay[s],6.2e-06,/home/user/tests/run2/pspice
nmos_var12,5e-03,5e-03,5e-03,0.5,0,25,delay[s],7.46e-06,/home/user/tests/run2/pspice
nmos_var12,5e-03,5e-03,5e-03,0.5,0,70,delay[s],8.98e-06,/home/user/tests/run2/pspice
nmos_var12,5e-03,5e-03,5e-03,0.5,0,100,delay[s],9.56e-06,/home/user/tests/run2/pspice

Я создал эти таблицы для хранения данных:

CREATE TABLE `TEST__RUN_MAPPING` (
 `ID` int(11) NOT NULL auto_increment,
 `NAME` varchar(45) NOT NULL,
 `STATUS` varchar(20) NOT NULL,
 `PATH` text NOT NULL,
 `TOOL` varchar(10) NOT NULL,
 `COMMENTS` text NOT NULL,
 PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `TEST__DATA_MAPPING` (
 `ID` int(11) NOT NULL auto_increment,
 `NAME_ID` int(11) NOT NULL,
 `CONDITIONS` int(11) NOT NULL,
 `VALUE` varchar(10) NOT NULL,
 PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `TEST__CONDITION_MAPPING` (
 `ID` int(11) NOT NULL auto_increment,
 `CELL_ID` int(11) NOT NULL,
 `W_ID` int(11) NOT NULL,
 `L_ID` int(11) NOT NULL,
 `SPACE_ID` int(11) NOT NULL,
 `VDD_ID` int(11) NOT NULL,
 `VSS_ID` int(11) NOT NULL,
 `TEMP_ID` int(11) NOT NULL,
 `PARAM_ID` int(11) NOT NULL,
 PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

TEST__RUN_MAPPING ID сопоставляется сTEST__DATA_MAPPING NAME_ID

TEST__DATA_MAPPING CONDITIONS соответствует TEST__CONDITION_MAPPING ID

Все * ID в TEST _CONDITION_MAPPING сопоставляются с их собственной таблицей, чтобы иметь уникальные вещи.Каждый из этих CSV-файлов будет отличаться в зависимости от используемой технологии моделирования, и я буду следить за этим в столбце ИМЯ в TEST__RUN_MAPPING.Ячейка, Ширина (м), Длина (м), Интервал (м), VDD (V), VSS (V) и Темп - все значения, которые используются, но обычно они одинаковы для каждой технологии, поэтому я сгруппировал их вместев отдельной таблице.

Существуют ли другие способы, с помощью которых более опытный человек может разорвать отношения, чтобы у них было оптимальное время чтения?лучше нормализация?

1 Ответ

0 голосов
/ 02 января 2012

Если я правильно понимаю эту структуру, я бы не стал отделять таблицу условий от таблицы выполнения. Конечно, они будут иметь отношения 1 к 1. Так почему бы не иметь их обоих в одной таблице. Условия для этого бега.

Кроме того, я бы осторожно поместил блок 'TEXT' в запись. ТЕКСТ и BLOB-объекты могут вызвать проблемы с производительностью. VARCHAR в MySQL 5 может достигать 65 000 символов. Для путей вам не нужно больше 1024 символов. Поэтому для пути достаточно varchar (1024).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...