消除MySQL重复日期

发布于 2024-11-08 12:20:34 字数 1923 浏览 0 评论 0原文

我正在创建一个产品数据库并尝试以正确的方式完成它。这是到目前为止我的数据库设置方式。

我的产品表只是产品 ID 和营销描述。 sku 表将 skuid 与 Productid 相关联。一种产品有多个SKU。每个产品的 SKU 都是独一无二的。三个属性表将属性值(即尺寸、重量、颜色等)与sku id相关联。

这是结果。

http://174.121.67.116/~aware/awarebk/product_sku_view.php?code =789

产品 789 的 sku 为 17、24、25, 29, 30 与之相关。第 25、29 和 30 行是我的问题。您会看到允许重复。该表在数据库中不存在。它是使用下面的代码创建的。我希望每个 sku id 的属性组合都是唯一的。我是否通过前端验证来做到这一点?有没有办法在后端执行此操作?这是我用来生成 sku 行的 mysql 代码。

$sidresult = mysql_query("SELECT sku.product_idproduct,
                                 sku.idsku, 
                                 amaterial.material, 
                                 amcolor.color, 
                                 atype.type
                            FROM sku sku
                 LEFT OUTER JOIN amaterial ON sku.idsku = amaterial.sku_idsku
                 LEFT OUTER JOIN amcolor ON sku.idsku = amcolor.sku_idsku
                 LEFT OUTER JOIN atype ON sku.idsku = atype.sku_idsku
                           WHERE sku.product_idproduct =$pid");

  if (mysql_num_rows($sidresult) > 0) {
      echo '
  <table border="1" cellspacing="0" cellpadding="5px">
    <tr>  
     <th>SKU ID</th>
    <th>Material</th>
    <th>Material Color</th>
    <th>Type</th>

    </tr>';
      while ($sidrow = mysql_fetch_array($sidresult)) {
          echo '<tr>';
          echo '<td>' . $sidrow['idsku'] . '</td>';
          echo '<td>' . $sidrow['material'] . '</td>';
          echo '<td>' . $sidrow['color'] . '</td>';
          echo '<td>' . $sidrow['type'] . '</td>';
          echo "</tr>";
      }
      // close table>
      echo "</table>";

同样,我的目标是确保使用 skuid 生成的属性行是唯一的并且不能添加重复项。那么如何验证多个表中的重复项呢?

I am creating a products database and trying to do it the right way. Here is how I have my database setup so far.

My product tables is just a productid and marketing description. The sku table relates a skuid to productid. One product has many skus. Skus are unique to each product. The three attributes tables associate an attribute value (i.e. size, weight, color, etc.) to a sku id.

Here is the result.

http://174.121.67.116/~aware/awarebk/product_sku_view.php?code=789

Product 789 has skus 17, 24, 25, 29, 30 related to it. Row 25, 29, and 30 is my problem. You see that duplicates are allowed. This table doesn't exist in the database. It's created using the code below. I want the combination of attributes to be unique for each sku id. Do I do this through front-end validation? Is there a way to do this on the backend? Here is mysql code I use to generate the sku rows.

$sidresult = mysql_query("SELECT sku.product_idproduct,
                                 sku.idsku, 
                                 amaterial.material, 
                                 amcolor.color, 
                                 atype.type
                            FROM sku sku
                 LEFT OUTER JOIN amaterial ON sku.idsku = amaterial.sku_idsku
                 LEFT OUTER JOIN amcolor ON sku.idsku = amcolor.sku_idsku
                 LEFT OUTER JOIN atype ON sku.idsku = atype.sku_idsku
                           WHERE sku.product_idproduct =$pid");

  if (mysql_num_rows($sidresult) > 0) {
      echo '
  <table border="1" cellspacing="0" cellpadding="5px">
    <tr>  
     <th>SKU ID</th>
    <th>Material</th>
    <th>Material Color</th>
    <th>Type</th>

    </tr>';
      while ($sidrow = mysql_fetch_array($sidresult)) {
          echo '<tr>';
          echo '<td>' . $sidrow['idsku'] . '</td>';
          echo '<td>' . $sidrow['material'] . '</td>';
          echo '<td>' . $sidrow['color'] . '</td>';
          echo '<td>' . $sidrow['type'] . '</td>';
          echo "</tr>";
      }
      // close table>
      echo "</table>";

Again, my goal is to make sure that the row of attributes generated using the skuid is unique and that duplicates can't be added. So how do I validate against duplicates across multiple tables?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咆哮 2024-11-15 12:20:34

您的后端验证代码应根据产品 ID 检查用户输入的新 SKU 值 - 看起来您正在使用 PHP,因此此例程应位于处理 SKU 输入表单 (add_product_sku_view.php) 的位置。

获取用户的输入,运行 SQL 查询以查看它是否返回任何现有 SKU,并通知用户组合是否已存在。仅当他们输入唯一的 SKU 详细信息后,您才应允许将记录插入到您的 SKU 表中。

Your back-end validation code should check the new SKU values entered by the user against the product ID - it looks like you're using PHP, so this routine should sit where you process the SKU input form (add_product_sku_view.php).

Take the user's input, run an SQL query to see if it returns any existing SKUs, and notify the user if the combination already exists. Only once they have entered unique SKU details should you allow the record to be inserted into your SKU table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文