php - Mysql DB 结构(架构)建议

标签 php mysql sql database data-structures

检查这张 table 的图像 - http://puu.sh/3ipDq.png

如何在 MySQL (sql) 中对此进行建模?我希望能够以规范化的方式将此表中包含的数据存储在我的数据库表中。我应该能够轻松查询数据库并在网页上形成这个精确的表格(使用 HTML)。

数据应该存储得足够好,以便能够对这样的数据集进行一些计算(聚合函数)、过滤、比较、搜索等(假设一段时间后我们将拥有大量数据,所以基本上查询应该是高性能的)。

如果这是有道理的,我们将不胜感激。我尝试使用一些键/值结构对这些数据进行建模,但没有成功。很难维护行/列之间的关系。例如,第二列中的第一行与第3、4、n列中的第一行相关。

另一个解决方案是制作一个包含如图所示数量的列的表格。但这里的问题是,这只是一个示例表。将会有更多这样的表,其中包含变量列、完整的不相关列名称/类型、值等。例如,这是另一个表 - http://puu.sh/3iq0g.png - 我希望能够以“通用”方式存储两个表(当然还有更多相关和不相关表)中的数据。首先想到的是 key/val 方法,但我失败了。

我是否应该考虑在这部分使用一些 NoSQL 解决方案?

最佳答案

这并不复杂。

但是您需要几个表:

Cab_type       PK cabtype     details...
Media_option   PK mediatype   details...
Placement      PK placement   details...
Unit           PK unit        details...
pricing        PK (serial number)  FK cabtype FK mediatype FK placement FK unit  Price

我相信这适合标准形式数据库的所有定义,并且具有轻松查询以获取所需信息的优点,因为任何表都可以通过定价表链接。

希望这有帮助。

对于你的第二个表和你设想的 n 个表,这就是范式发挥作用的地方。但有时您必须对关系进行编码。例如,如果单位始终与出于某种目的的放置相关联,您可以创建一个表 unit_placement,其中包含每个表中的 FK 来描述关系。您最终必须输入一些将事物链接在一起的数据。它不会自动发生(经常发生!)

关于php - Mysql DB 结构(架构)建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17165819/

相关文章:

PHP Mysql - 导出整个数据库

MySQLi 结果集上的 PHP Foreach

php - 将值从 php 传递到 html

sql - 在一个过程中连接到 2 个数据库 : one local and the other remote

mysql - 当专门选择 NOT NULL 字段时,是什么导致日期为 <null>?

php - 如何使用 laravel 查询生成器 'when' 运算符定位同一结果集的列

PHP - 摆脱符号

php - 如何发送有意从另一个 Activity 发送的数据?

php - 我可以使用 MySQL 临时表来存储搜索结果吗?

mysql - 必须声明标量变量