【发布时间】:2013-11-01 00:29:26
【问题描述】:
我将 SlickGrid/DataView 用于 CRUD 目的。它工作正常。但是,我们有一些没有主键的表。
Q1:我如何为这些表使用数据视图?如果不是,那么我是否只使用没有数据视图的 Slickgrid 或者我有其他选择?任何示例将不胜感激。
Q2:Dataview 是否支持复合主键?如果是的话,有人可以给我一个使用它的例子吗?
谢谢
【问题讨论】:
我将 SlickGrid/DataView 用于 CRUD 目的。它工作正常。但是,我们有一些没有主键的表。
Q1:我如何为这些表使用数据视图?如果不是,那么我是否只使用没有数据视图的 Slickgrid 或者我有其他选择?任何示例将不胜感激。
Q2:Dataview 是否支持复合主键?如果是的话,有人可以给我一个使用它的例子吗?
谢谢
【问题讨论】:
SlickGrid 至少需要 ID 字段,您可以在表中取任何可能以不同方式命名的字段,然后将其别名为“ID”,但它必须是唯一的 id 字段,因为 SlickGrid 将其用于行命名等在。
如果您没有 UNIQUE 字段并且您确实想使用复合主键,那么我建议您创建一个假 ID 字段,您只需在每个循环中递增 1。一种简单的方法是在获取数据时执行此操作,类似于以下内容:
$sqlTable = "SELECT * FROM myTable";
$result = mysql_query($sqlTable,$connMySQL);
$i = 1;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$tabData[] = array(
"id" => $i++,
"column1" => $row['column1'],
"column2" => $row['column2']
);
}
现在,如果您确实像我刚才所说的那样使用了假 ID,这会给您在执行 CRUD(更新、删除)时带来一些问题,因为您的 ID 不是真实的并且指向任何地方......但是有一种方法可以解决那也是。
顺便说一句,您应该将您的问题分成 2 个单独的问题,因为它们是不同的主题。我建议您在另一个问题中询问您的 CRUD 主题,并提供一些代码,以便我们可以从那里进行开发。
【讨论】: