【问题标题】:Database design (normalization?)数据库设计(规范化?)
【发布时间】:2011-11-20 02:14:33
【问题描述】:

在以下情况下,数据库设计会是什么样子?

这是用于某种库存系统的。

我希望用户能够创建一个项目-type(比如说,一台笔记本电脑)。我还希望用户能够说序列号和 MAC 地址必须是唯一。这部分让我在哪里检查唯一值感到困惑,因为我不知道如何制作一个包含所有项目的表格,并且具有唯一值..

假设用户创建了另一个没有序列号或任何唯一字段的项目-type,这意味着我无法使用property1 直到数据库中的property10 字段构建我的数据库.

我也不想为每个项目类型构建一个表,因为这会涉及 PHP 中过于高级的表管理。

关于如何构建这个数据库有什么建议吗?

【问题讨论】:

  • 希望自己的用户成为数据库设计师的人通常会感到失望。

标签: php mysql sql database-design normalization


【解决方案1】:

为了澄清我正确理解您的要求,您的意思是创建一个唯一规则仅适用于表的子集而不是整个表的表?

如果是这样,我认为会有两种选择

  • 有两张表,一张有唯一规则,一张没有 OR
  • 将应用程序级别的唯一规则作为业务规则而不是数据库级别强制执行。

【讨论】:

    【解决方案2】:

    如果我的问题正确,我会做一些简单且可维护的事情,例如:

    【讨论】:

      【解决方案3】:

      您可以通过以下方式实现它, 假设,表名是item,这里item id是主键。它可以很容易地选择你想要的item。然后在发布(插入)序列号和mac地址时,你应该用php检查,没有重复的数据.

      我找到你了吗!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-18
        • 2011-07-25
        • 2011-04-18
        • 1970-01-01
        • 2013-07-12
        • 2012-08-10
        • 2011-05-29
        • 2011-12-20
        相关资源
        最近更新 更多