我想设计一个数据库。我有问题,我会尽力向他们解释最好的方法。
1)有人告诉我,如果您不想要有关该项目的许多细节,或者如果您不想手工做很多事情,请采用动态的想法,这意味着您没有一张桌子列,但是您有一个表,其中的列为行。这是一个好方法吗?值得吗?
2)如果表较少,则扩展更容易。为什么呢?
3)假设我追求动态想法。所以我想出的是,我已经创建了3个表。这3个表将始终相同,并且对于使用动态构想的其他表总是有帮助的。怎么样?这就是方法。
+----+------------+
| id | input_type |
+----+------------+
| 1 | select |
| 2 | input |
| 3 | bool |
+----+------------+
+----+---------------+--------------+
| id | name | form_type_id |
+----+---------------+--------------+
| 1 | year_of_issue | 1 |
+----+---------------+--------------+
+----+-------------------+-------+
| id | dynamic_column_id | value |
+----+-------------------+-------+
| 1 | 1 | 1996 |
| 2 | 1 | 2005 |
| 3 | 1 | 2008 |
+----+-------------------+-------+
现在我可以使用这些表来动态添加汽车并从数据库中获取汽车,但是要使其适用于汽车,我将使用这3个表,并且还必须为汽车添加另外3个表。
+----+
| id |
+----+
| 1 |
+----+
+---------------+-------------------+
| 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个表,依此类推。如您所知,表的数量将会增加,到目前为止可能还不是动态的。有人告诉我,缩短表的数量可以更好地扩展动态性。请给我您的想法。我应该遵循我的方法还是应该做什么?