gpt4 book ai didi

mysql - 灵活的mysql表的动态内容解决方案

转载 作者:行者123 更新时间:2023-11-29 03:10:16 25 4
gpt4 key购买 nike

我一直在想很多,想弄清楚如何制作一个灵活的系统来保存许多值,从而避免将来向表中添加更多字段的选择。我唯一能想到的就是制作一个看起来像这样的表格:

CREATE TABLE IF NOT EXISTS `form_data` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
`value` varchar(500) default NULL,
`form_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
)

+--------+---------+----------+--------+
| id | name | value | form_id|
+--------+---------+----------+--------+
| 100 |fullname | Steve | 1 |
+--------+---------+----------+--------+
| 101 |email |ab@c.com | 1 |
+--------+---------+----------+--------+
| 102 |fullname | John | 1 |
+--------+---------+----------+--------+
| 103 |email |cd@c.com | 1 |
+--------+---------+----------+--------+

这样,我可以连续保存每个值,而且它会像我想要的那样动态。我知道在很长的表中性能不佳。

现在我还想出了如何在“常规”表中创建值的 View (前端)。看起来就像一张普通的 table 。

+--------+---------+----------+
| ID | Email |Fullname |
+--------+---------+----------+
| 1 |ab@c.com | Steve |
+--------+---------+----------+
| 2 |cd@c.com | John |
+--------+---------+----------+

现在我想创建一个临时表而不是 PHP 循环。任何想法如何使这项工作?如何创建一个存储过程来接收 form_id 作为参数并返回这样的表?

最佳答案

恭喜。你重新发明了 Entity-Attribute-Value model .

这个模型已经存在了很长一段时间,但已被证明为 perform quite bad在关系数据库系统中。您可能不应该使用它。

This answer makes a nice list EAV 的优点和缺点。最大的优点是你发现了什么,设计起来更容易。最大的缺点就是我在这里要说的:性能更差。

由于通常您设计的频率远低于查询运行的频率,因此在设计时考虑时间长一些并加快查询速度可能会更好。

关于mysql - 灵活的mysql表的动态内容解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9597863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com