我正在用PHP,PDO和Mysql创建一个简单的数据映射系统。 其中一个前提是通过创建第三表来将数组映射到实体(不确定名称是否正确)。
因此,当我映射一个数组时,我创建了一个包含所有传递的类名和方法名的一个work-for-all语句的表,如下所示:
"create table if not exists ".$tablename." (id_".$firstName." int unsigned not null, ".$secondName." ".$type.", constraint fk_".$tablename." foreign key (id_".$firstName.") references ".$firstName."(id) ".$secondReference.");"
这里的代码不是问题。 我想知道的是,如果在每次迭代中创建一个表(如果不存在)是一个坏主意(它只会在每个元素的第一次迭代中创建它)。
编辑(解释):如上所述,创建无数表并不担心(不会发生),因为这个过程是根据我使用的类(模型)自动完成的。令人担心的是,如果在每次迭代时都检查表是否存在,那么过于省钱的内存和交通方式(这样每个项目我将访问数据库两次,一次用于检查表是否存在,然后再次用于插入新元素进入表格。)
另一种选择是首先通过select语句检查表是否存在,但它看起来好不了。
一个重要的信息是,用于映射的这些方法将通过引用每个实体的对象DAO来访问。
编辑:GitHub与项目的链接是like this code emits the event
答案 0 :(得分:0)
对我来说,每次创建一张桌子听起来并不理想。可能最好重复使用同一个表格(在您当前的表格之间添加一列作为标识符'
如果您确实创建了表格,请注意create table if not exist
没有任何问题。这是一个安全而好的编程
我还考虑使用临时表来做这件事。如果你每次创建表,听起来它们也是一次性使用。所以,如果你不需要永远的数据,临时可能是一个很好的方式