如何动态获取,更新,插入以使表数保持较小

时间:2018-11-06 14:06:32

标签: php mysql mysqli

我想设计一个数据库。我有问题,我会尽力向他们解释最好的方法。

1)有人告诉我,如果您不想要有关该项目的许多细节,或者如果您不想手工做很多事情,请采用动态的想法,这意味着您没有一张桌子列,但是您有一个表,其中的列为行。这是一个好方法吗?值得吗?

2)如果表较少,则扩展更容易。为什么呢?

3)假设我追求动态想法。所以我想出的是,我已经创建了3个表。这3个表将始终相同,并且对于使用动态构想的其他表总是有帮助的。怎么样?这就是方法。

form_types表

+----+------------+
| id | input_type |
+----+------------+
|  1 | select     |
|  2 | input      |
|  3 | bool       |
+----+------------+

dynamic_columns表

+----+---------------+--------------+
| id |     name      | form_type_id |
+----+---------------+--------------+
|  1 | year_of_issue |            1 |
+----+---------------+--------------+

type_values表

+----+-------------------+-------+
| id | dynamic_column_id | value |
+----+-------------------+-------+
|  1 |                 1 |  1996 |
|  2 |                 1 |  2005 |
|  3 |                 1 |  2008 |
+----+-------------------+-------+

现在我可以使用这些表来动态添加汽车并从数据库中获取汽车,但是要使其适用于汽车,我将使用这3个表,并且还必须为汽车添加另外3个表。

汽车

+----+
| id |
+----+
|  1 |
+----+

column_transport_type

+---------------+-------------------+
| dynamic_column_id | transport_type_id |
+---------------+-------------------+
|             1 |                 1 |
+---------------+-------------------+

car_columns_value

+----+--------+-------------------+-------+
| id | car_id | dynamic_column_id | value |
+----+--------+-------------------+-------+
|  1 |      1 |                 1 |  1996 |
+----+--------+-------------------+-------+

因此,让我们谈谈以下3个表格。 从用户那里,我获得了写入column_tranport_type表中的transport_type_id。假设我将transport_type_id设置为1,并将其设为1,得到的dynamic_column_id等于1。我进入dynamic_columns表,找到所有ID等于1的年份,因此它是year_of_issue。然后,我检查是否选择了year_of_issue或输入了是否为year_of_issue,并且还将选择了列名称为“ year_of_issue”的选择值返回到前端,以便在返回此信息之后,我逐个循环该信息并动态创建表单。当他将信息输入到我动态获取的那些列中时,我使用car_columns_value表将值放在此处。你了解我的情景吗?

这是我动态地进行这类事情的好方法吗?我担心的是,对于要使其动态运行的每种事物(汽车或轮船),我必须再创建3个表。默认情况下有3个表,对于每个动态业务逻辑(汽车,商店,船舶),我需要另外3个表和另外3个表,依此类推。如您所知,表的数量将会增加,到目前为止可能还不是动态的。有人告诉我,缩短表的数量可以更好地扩展动态性。请给我您的想法。我应该遵循我的方法还是应该做什么?

0 个答案:

没有答案