我是整个“规范化表”的新手。我有一个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条件映射到TEST__CONDITION_MAPPING ID
TEST _CONDITION_MAPPING中的所有* ID都会映射到自己的表格,以便让事物与众不同。
这些csv文件中的每一个都将在模拟中使用的技术方面有所不同,我通过TEST__RUN_MAPPING中的NAME列对此进行了监控。单元,宽度(m),长度(m),间距(m),VDD(V),VSS(V)和Temp都是扫描的值,但通常它们对于每种技术都是相同的,因此我将它们组合在一起在另一张表中。
有经验的人是否有其他方式可以打破这种关系,使其具有最佳的阅读时间?更好的规范化?
答案 0 :(得分:0)
如果我正确理解了这个结构,那么我就不会从运行表中分离条件表。他们肯定会有一对一的关系。那么为什么不将它们放在同一张桌子上呢。特殊情况的条件。
另外我会小心将'TEXT'块放在记录中。 TEXT和Blob可能会导致一些性能问题。 mysql 5中的varchar可以高达65,000个字符。对于路径,您不需要超过1024个字符。所以varchar(1024)应该足够用于路径。