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.

中全选时获得与以前相似的结果