Php 在新数据库中安装表、字段和静态数据的标准方法是什么?

Php 在新数据库中安装表、字段和静态数据的标准方法是什么?,php,mysql,dictionary,configuration-files,rdms,Php,Mysql,Dictionary,Configuration Files,Rdms,不幸的是,我所有的RDMS经验都来自于使用我公司专有的数据库技术,我正在努力寻找将我的知识转化为PHP/MySQL实践的类似方法 在我的公司中,我们定义了“数据字典”配置,用于定义表、字段、键等: orders_Dct.cfg trades_Dct.cfg profiles_Dct.cfg 一个这样的配置文件可能如下所示: table { name ORDERS fields (ORDER_ID, ORDER_VS, PRICE, QUANTITY) key

不幸的是,我所有的RDMS经验都来自于使用我公司专有的数据库技术,我正在努力寻找将我的知识转化为PHP/MySQL实践的类似方法

在我的公司中,我们定义了“数据字典”配置,用于定义表、字段、键等:

orders_Dct.cfg
trades_Dct.cfg
profiles_Dct.cfg
一个这样的配置文件可能如下所示:

table
{
    name   ORDERS
    fields (ORDER_ID, ORDER_VS, PRICE, QUANTITY)

    key
    {
        name ORDERS_BY_ID_VS
        sort (ORDER_ID, ORDER_VS)
    }
}

field
{
    name ORDER_ID
    type CHARARRAY
    size 8
}

field
{
    name ORDER_VS
    type I32
}

field
{
    name PRICE
    type F64
}

field
{
    name QUANTITY
    type F64
}
此外,我们还定义了“静态数据”,例如
profiles\u static.cfg

table
{
    name PROFILES

    entry
    {
        USER_ID    0
        USER_NAME  SYSTEM
        SUPER_USER Y
    }

    entry
    {
        USER_ID    1
        USER_NAME  TEST
        SUPER_USER N
    }
}
然后,我们运行诸如
Install
Remap
LoadStatic
等命令,根据这些配置文件更新数据库

现在,我当然可以编写脚本,甚至可以复制我的公司做事的方式,但我认为在PHP/MySQL中必须有一些标准的方法来做到这一点。我想知道我是不是在用错误的术语进行搜索,因为我只找到了“mysql”、“数据库”、“字典”、“配置”和“卷展栏”等术语,至少乍一看,这些术语和我要找的似乎不一样我想要一种简单的、基于配置文件的方法来设置数据库表、字段、键和静态数据。有人能给我指出正确的方向吗?

如果没有这样的“标准”实践,那么肯定有一个很好的理由,而且我愿意适应不同的做事方式。但是,为了这个目的,必须编写自定义脚本显然是愚蠢的


提前谢谢。

你真走运!有一种完整的语言专门用来描述。它还支持

这种语言叫做。。。。SQL



还有一个命令,
mysqldump
,它可以从活动数据库生成SQL。

你真幸运!有一种完整的语言专门用来描述。它还支持

这种语言叫做。。。。SQL



还有一个命令,
mysqldump
,它可以从活动数据库生成SQL。

我认为最好描述您想要实现的目标,而不是您当前正在做的事情。例如,您想为新安装的东西创建一个数据库?也许里面有一些默认数据?或者您想拥有发布新开发分支的更新路径吗?或者这是一个备份策略的东西?@Nanne-更多的是为了练习而不是发布,但我正在从头创建一个站点模板。(是的,我知道Ruby、Django等,但我想尝试“重新发明轮子”)网站模板总是需要某些表、字段和键,我希望能够从我可以手工编辑的文件中加载用户数据、产品数据等。谷歌的一个好关键字是“数据库迁移”…@Nanne-例如,假设我意识到我需要添加字段,
ORDER\u ENTERED
ORDER\u expiration
。我不想只是PHPMyAdmin更改,因为我可能想将此更改推送到10个不同的站点。我想编辑一个配置文件,并在每个站点上运行反映更改的内容。我想如果我使用脚本,我可以编辑脚本,这就是问题所在——这必须足够普遍,以至于“脚本”已经存在——但也许我错了……我认为你最好描述你想要实现的目标,而不是你目前正在做的事。例如,您想为新安装的东西创建一个数据库?也许里面有一些默认数据?或者您想拥有发布新开发分支的更新路径吗?或者这是一个备份策略的东西?@Nanne-更多的是为了练习而不是发布,但我正在从头创建一个站点模板。(是的,我知道Ruby、Django等,但我想尝试“重新发明轮子”)网站模板总是需要某些表、字段和键,我希望能够从我可以手工编辑的文件中加载用户数据、产品数据等。谷歌的一个好关键字是“数据库迁移”…@Nanne-例如,假设我意识到我需要添加字段,
ORDER\u ENTERED
ORDER\u expiration
。我不想只是PHPMyAdmin更改,因为我可能想将此更改推送到10个不同的站点。我想编辑一个配置文件,并在每个站点上运行反映更改的内容。我想如果我使用脚本,我可以编辑脚本,这是一件事——这必须足够普遍,以至于“脚本”已经存在——但也许我错了……我很欣赏这种诚实,我会重新考虑我是否真的需要的不仅仅是基础,但我想我认为会有一种实用程序或方法,可以消除SQL的许多冗余。(嗯,或者我的问题更多地与可读性有关……)SQL实际上并不是那么冗余,可读性更倾向于格式化。正确缩进的SQL通常非常容易阅读。再想一想,你完全是对的。答案一直摆在我面前。我公司的RDMS没有查询语言;所有的东西都是通过C++或TCL API访问的。习惯了这一点后,我甚至没有想到我正在寻找的
*.cfg
文件几乎可以翻译成
*.sql
文件!谢谢我很欣赏这种诚实,我会重新考虑我是否真的需要的不仅仅是基本的东西,但我想我认为会有一种实用程序或方法来消除SQL的许多冗余。(嗯,或者我的问题更多地与可读性有关……)SQL实际上并不是那么冗余,可读性更倾向于格式化。正确缩进的SQL通常非常容易阅读。再想一想,你完全是对的。答案一直摆在我面前。我公司的RDMS没有查询语言;所有的东西都是通过C++或TCL API访问的。习惯了这一点后,我甚至没有想到我正在寻找的
*.cfg
文件