在我的DB中,我需要对订单有唯一的引用I,以显示最终用户。
我的模式包括许多可能有许多客户的帐户,这些帐户可以发出多个订单(有时同时下订单--不同的客户,以及有多个订单的单个客户)。
我决定用Hashids来解决这个问题。我想出了这个:
//create a unique salt using the account id + current timestamp:
var hashids = new Hashids(accountId + '-' + new Date().getTime(), 8,
'0123456789ABCDEFGHIJKLMNOPQRSTUVWX
背景:
我正在创建一个服务预订网站。每个订单都需要一个唯一的订单编号。我选择了16位,因为这是以前的软件所使用的。
问题
我不确定将数据放入序号是否有任何好处,或者它是否应该是一个纯粹的随机字符串。
如果它只是一个随机字符串,那么它的唯一目的就是充当一个ID。如果是这样的话,为什么不直接使用一个增量ID呢?另外,为了混淆我们为最终用户生成的订单数量,我想不出一个很好的理由。
如果把数据放入字符串是个好主意,我应该包括什么样的数据?可能是下订单的日期,但除此之外我不知道。
我目前正在生成一个纯粹随机的16位字符串,就像这样。
public function generateOrderNumber
我很难弄清楚如何在PHP / MySql项目中链接数据库行。我的订单提交脚本目前拆分信息,并将其存储为2个表。
$OrderId, $CustomerName, $CustomerEmail, $OrderTotal, $OrderTaxes
//and other infos about the ORDER
$ProductId, $OrderedQty
//for each one and such...
必须这样,因为"Items“表将由不同的”部门“搜索,这些”部门“将只显示他们负责的订单的部分。
如果知道"OrderId“列是在"Orders”表本身上生
我的购物车页面上有两个链接。一个是通向产品目录的“继续购物”,另一个是通向订单详细信息页面的“结账”。问题是,每当我刷新订单详细信息页面时,我的order_id就会递增,并在表中存储一个我不想要的新订单。我使用了标题(..)来阻止这一切,但它似乎也不起作用。
session_start();
if(!isset($_SESSION["customer"]))
{
header("location: customer_login.php"); // will not execute if loggedin.
exit();
}
// Connect to t
我试图通过mysql管道将被蜘蛛刮过的项目放到mysql数据库中。一切正常,但我看到一些奇怪的行为。我发现,数据库的填写顺序与网站本身的顺序不同。就像一个随机的秩序。我想,可能是字典里的东西,就像刮过的物品清单一样。
我的问题是:
我如何才能得到与网站本身的项目相同的订单。
我怎样才能扭转问题1的顺序。
因此,网站上的项目:
一个
B
C
D
E
在sql中添加顺序:
E
D
C
B
一个