数据库设计(规范化?)

发布于 2024-12-05 02:03:05 字数 375 浏览 1 评论 0原文

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

这是针对某种库存系统的。

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

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

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

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

In the following situation, what would the database design look like?

This is for some sort of inventory system.

I want users to be able to create a item-type (lets say, a Laptop). I also want users to be able to say the serial number and MAC address must be unique. This part confuses me where to check for unique values, since I have no idea how to make a table with all items in it, with unique values..

Let's say a user creates another item-type that has no serial number or any unique fields, this means I can't build my DB with property1 till property10 fields in the database.

I also don't want to build a table for every item type, since that would involve too advanced table management in PHP.

Any suggestions on how to build this DB?

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

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

发布评论

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

评论(3

陌若浮生 2024-12-12 02:03:05

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

如果是这样,我认为将有两个选项

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

Just to clarify I understand your requirements correctly, you meant to create a table that unique rule only applies to a subset of the table instead of the entire table?

If so, I think there will be two options

  • have two tables, one with unique rules and one without OR
  • Enforce the unique rules in application level as business rules instead of database level.
国产ˉ祖宗 2024-12-12 02:03:05

如果我正确地回答了你的问题,我只会做一些简单且可维护的事情,例如:

在此处输入图像描述

If i got your question correctly , i would just do something simple and maintainable, such as :

enter image description here

﹎☆浅夏丿初晴 2024-12-12 02:03:05

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

我找到你了吗!

you can achieve it by,
assume ,table name is item,here item id is primary key.it makes easy to pick up which item you want.then while posting(inserting) serial number and mac address,you should check with php ,that there is no duplication of data.

did i got u !

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