Database 我应该使用文件还是数据库表来存储参数?

Database 我应该使用文件还是数据库表来存储参数?,database,symfony,parameters,doctrine,Database,Symfony,Parameters,Doctrine,我正在构建一个Symfony应用程序,我希望能够在web平台上直接配置它(即,无需自己更改文件)。为此,我想创建带有键和值的全局参数。例如,键可以是字符串emails,值可以是emaillist 这可以在Symfony中轻松完成,使用应用程序读取/写入此文件,但我认为使用数据库并创建一个参数表也很好,该表将有两列作为键和值 你对设计有什么看法?使用其中一个会比使用另一个更好,还是你认为它并不重要 编辑:我想要的是在我的应用程序中使用动态参数。例如,我可以更改界面的颜色。仅对在开发环境和生产环境之

我正在构建一个Symfony应用程序,我希望能够在web平台上直接配置它(即,无需自己更改文件)。为此,我想创建带有键和值的全局参数。例如,键可以是字符串
emails
,值可以是emaillist

这可以在Symfony中轻松完成,使用应用程序读取/写入此文件,但我认为使用数据库并创建一个
参数
表也很好,该表将有两列作为键和值

你对设计有什么看法?使用其中一个会比使用另一个更好,还是你认为它并不重要

编辑:我想要的是在我的应用程序中使用动态参数。例如,我可以更改界面的颜色。

仅对在开发环境和生产环境之间更改的参数使用“参数文件(yml)”。 因此,您可以毫无问题地备份和恢复数据库

使用本地存储或cookie进行用户配置

将数据库用于在开发环境和生产环境之间不改变的站点配置。

仅对在开发环境和生产环境之间改变的参数使用“参数文件(yml)”。 因此,您可以毫无问题地备份和恢复数据库

使用本地存储或cookie进行用户配置



将数据库用于在开发环境和生产环境之间不发生变化的站点配置。

想象一下,您需要让与您一起使用应用程序的同事能够访问您当前的一组参数。如果您有参数文件,只需将其添加到git存储库中,提交并拉入远程。您将如何从数据库中共享它?当然,这将包括更多的步骤,为你为他们。此外,如果您想将数据存储从数据库更改为其他存储,则需要定义如何再次将配置实体映射到新存储。根据这一假设,我认为参数文件将更适合这项任务。

想象一下,你需要让你的同事能够访问与你一起开发应用程序的当前参数集。如果您有参数文件,只需将其添加到git存储库中,提交并拉入远程。您将如何从数据库中共享它?当然,这将包括更多的步骤,为你为他们。此外,如果您想将数据存储从数据库更改为其他存储,则需要定义如何再次将配置实体映射到新存储。根据这些假设,我认为参数文件更适合此任务。

谢谢您的回复。因此,在我的情况下,我应该按照您所说的使用数据库。我认为您必须使用parameter.yml。数据库不用于保存应用程序参数。感谢您的回复。因此,在我的情况下,我应该按照您所说的使用数据库。我认为您必须使用parameter.yml。数据库不用于保存应用程序参数。数据库不用于保存应用程序参数。谢谢,我已经阅读了文档。我应该说得更具体些。我想要的是能够动态更改我的应用程序将使用的“参数”,如界面颜色或电子邮件列表,以防用户需要报告某些内容。在这种情况下,是的,数据库不是用于保存应用程序参数的。谢谢,我已经阅读了文档。我应该说得更具体些。我想要的是能够动态更改我的应用程序将使用的“参数”,如界面颜色或电子邮件列表,以防用户需要报告某些内容。在这种情况下,是的,我确实使用了一个参数文件,用于我不需要定期更改的参数。这里的需求是不同的。假设我希望能够更改界面的颜色。对于文件,我需要:1)进行更改;2) 承诺;3) 部署。这将是一个漫长的过程,只是作出一个微小的变化,一个可以经常。我认为应用程序运行时不应更改参数文件。我相信,因为它不是1)应用程序模型域的一部分;2) 它应该可以在应用程序部署时访问;它不应该存储在数据库中。数据库不应影响应用程序配置。你错在“对于一个文件,我需要:1)进行更改;2)提交;3)部署。仅仅做一个微小的更改和一个频繁的更改将是一个漫长的过程。”我相信它应该在git存储库中,但不在跟踪系统中(换句话说,在.gitignore中)——除非你不想共享它的版本。为DB编写CRUD的过程将更长。此外,您将应用程序绑定到特定存储,并将配置放置到DB。图像你想改变你的存储-没关系-你需要有数据库,因为你在那里存储你的配置-在这种情况下,这是一个糟糕的方法。这是我想做的第一件事。使用一个参数文件,我将把它放在
.gitignore
中,并创建一个界面,以便用户管理员使用该应用程序更改配置。但这似乎有点奇怪,这就是我问的原因。还有一些项目,比如,是的,我知道,在一段时间以前用BITRIX框架工作,他们使用与WordPress相同的方法,这是因为每个项目都紧密耦合到DB,而整组的表甚至不需要,甚至不考虑它们的存在。我认为在DB中有一些配置是可以接受的,例如,如果用户可以访问它,那么他们可以更改站点的颜色并保存其值以在下次访问时访问它,但即使这样,它也应该复制并覆盖tex中的全局配置