15 个表 属性 与 mysql 冗余
15 tables property redundant with mysql
我遇到的情况应该是 15 个 table 的数据对于所有 15 个 table 具有相同的 属性 但每个 table 的目的不同,并且只有相同的 属性 名称,因为我需要用不同的记录显示每个 table。
我所有的 15 table 都包含这个 属性 [no,date,commentary,price,stock]
我已经用 属性 和 MySQL 创建了 15 个 table,但我认为我创建这个数据库的方式是错误的,因为它看起来对 属性.
我对设计数据库了解不多。
您的数据库中是否只有不同类型的项目?阅读 normalization in MySQL(Stack Overflow 答案)。
不是创建 15 个具有相同列的 table,您可以例如添加一列,告诉该行上的项目类型。所以您的专栏可能类似于 no, type, date, commentary, price, stock
例如,如果您在 table 之前有 2 个分隔...
Table 1
-----------------------------------------------------------
| no | date | commentary | price | stock |
-----------------------------------------------------------
| 1 | 2015-08-01 | Lorem ipsum | 10.00 | 6 |
-----------------------------------------------------------
| 2 | 2015-08-07 | Dolor sit | 25.00 | 3 |
-----------------------------------------------------------
Table 2
-----------------------------------------------------------
| no | date | commentary | price | stock |
-----------------------------------------------------------
| 1 | 2015-08-03 | An usu nemore | 15.00 | 10 |
-----------------------------------------------------------
| 2 | 2015-07-30 | Eam at eros | 30.00 | 1 |
-----------------------------------------------------------
您可以只创建一个 table,其中包含来自 tables 1 和 2 的数据。但是这次 table 包含新列 type
,它告诉您什么类型项在行中。在此示例中,之前 Table 1 中的数据具有类型 10
,而来自 Table 2 的数据具有类型 20
.
------------------------------------------------------------------
| no | type | date | commentary | price | stock |
------------------------------------------------------------------
| 1 | 10 | 2015-08-01 | Lorem ipsum | 10.00 | 6 |
------------------------------------------------------------------
| 2 | 10 | 2015-08-07 | Dolor sit | 25.00 | 3 |
------------------------------------------------------------------
| 3 | 20 | 2015-08-03 | An usu nemore | 15.00 | 10 |
------------------------------------------------------------------
| 4 | 20 | 2015-07-30 | Eam at eros | 30.00 | 1 |
------------------------------------------------------------------
现在你可以执行MySQL查询
SELECT * FROM tablename WHERE type = '10'
从 Table 1.
中全选时获得与以前相似的结果
我遇到的情况应该是 15 个 table 的数据对于所有 15 个 table 具有相同的 属性 但每个 table 的目的不同,并且只有相同的 属性 名称,因为我需要用不同的记录显示每个 table。
我所有的 15 table 都包含这个 属性 [no,date,commentary,price,stock]
我已经用 属性 和 MySQL 创建了 15 个 table,但我认为我创建这个数据库的方式是错误的,因为它看起来对 属性.
我对设计数据库了解不多。
您的数据库中是否只有不同类型的项目?阅读 normalization in MySQL(Stack Overflow 答案)。
不是创建 15 个具有相同列的 table,您可以例如添加一列,告诉该行上的项目类型。所以您的专栏可能类似于 no, type, date, commentary, price, stock
例如,如果您在 table 之前有 2 个分隔...
Table 1
----------------------------------------------------------- | no | date | commentary | price | stock | ----------------------------------------------------------- | 1 | 2015-08-01 | Lorem ipsum | 10.00 | 6 | ----------------------------------------------------------- | 2 | 2015-08-07 | Dolor sit | 25.00 | 3 | -----------------------------------------------------------
Table 2
----------------------------------------------------------- | no | date | commentary | price | stock | ----------------------------------------------------------- | 1 | 2015-08-03 | An usu nemore | 15.00 | 10 | ----------------------------------------------------------- | 2 | 2015-07-30 | Eam at eros | 30.00 | 1 | -----------------------------------------------------------
您可以只创建一个 table,其中包含来自 tables 1 和 2 的数据。但是这次 table 包含新列 type
,它告诉您什么类型项在行中。在此示例中,之前 Table 1 中的数据具有类型 10
,而来自 Table 2 的数据具有类型 20
.
------------------------------------------------------------------ | no | type | date | commentary | price | stock | ------------------------------------------------------------------ | 1 | 10 | 2015-08-01 | Lorem ipsum | 10.00 | 6 | ------------------------------------------------------------------ | 2 | 10 | 2015-08-07 | Dolor sit | 25.00 | 3 | ------------------------------------------------------------------ | 3 | 20 | 2015-08-03 | An usu nemore | 15.00 | 10 | ------------------------------------------------------------------ | 4 | 20 | 2015-07-30 | Eam at eros | 30.00 | 1 | ------------------------------------------------------------------
现在你可以执行MySQL查询
SELECT * FROM tablename WHERE type = '10'
从 Table 1.
中全选时获得与以前相似的结果