Doctrine 数据固定问题

Doctrine 数据固定问题,doctrine,yaml,Doctrine,Yaml,在哪里可以了解更多关于在yaml和数据装置中创建数据库标记的知识 我遵循了一个教程,他们创建了一个这样的关系:在用户和汽车的关系下。我的问题是为什么车里有“类型:多”。我可以把它放在用户端吗(只是好奇) abt数据类型。不同的数据库有不同的数据库支持。我认为在MySQL(这里使用的是InnoDB)中,整数应该是tinyint(x)、bigint(x)、int(x)。。。或者字符串应该是varchar而不是string?我在这里用的不是很严格吗 options: type: INNODB

在哪里可以了解更多关于在yaml和数据装置中创建数据库标记的知识

我遵循了一个教程,他们创建了一个这样的关系:在用户和汽车的关系下。我的问题是为什么车里有“类型:多”。我可以把它放在用户端吗(只是好奇)

abt数据类型。不同的数据库有不同的数据库支持。我认为在MySQL(这里使用的是InnoDB)中,整数应该是tinyint(x)、bigint(x)、int(x)。。。或者字符串应该是varchar而不是string?我在这里用的不是很严格吗

options:
  type: INNODB
  collate: utf8_general_ci
  charset: utf8

User:
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    name: string(300)
    email: string(300)
    phone: string(9)
    car_id: integer
  relations: 
    Car: 
      local: car_id
      foreign: id
Car:
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    brand: string(300)
  relations:
    Users:
      class: User
      foreign: car_id
      local: id
      type: many
更新1
  • “只需要在外键存在的一端指定关系”在我的示例中,是这样的吗?它们是指FK表(car)还是FK列(用户)

  • 我没有看到文本数据类型,是clob(字符大对象)吗iceangel89 0秒前[删除此评论]

  • 什么是外国人?还有别名吗

  • 更新2 这将有点长,我只想澄清一下中的一些代码示例。关注//注释中的关系部分->中

    User:
      columns:
        username:
          type: string(255)
        password:
          type: string(255)
        contact_id:
          type: integer
      relations:
        Contact:
          class: Contact // if the table is named Contact, class will be Contact also?
          local: contact_id 
          foreign: id
          foreignAlias: User // whats alias for? 
          foreignType: one // one contact ... to ...
          type: one // one user?
    
    Contact:
      columns:
        first_name:
          type: string(255)
        last_name:
          type: string(255)
        phone:
          type: string(255)
        email:
          type: string(255)
        address:
          type: string(255)
      relations:
        User:
          class: User
          local: id
          foreign: contact_id
          foreignAlias: Contact
          foreignType: one
          type: one
    
    关于这个问题,以下是什么意思

    attributes:
      export: all
      validate: true
    
    tableName: group_table
    
    refClass: GroupUser
    
    在哪里可以了解更多关于在yaml和数据装置中创建数据库标记的知识

    条令手册和章节

    我可以把它放在用户端吗(只是好奇)

    是的,但是这一部分将被称为
    foreignType
    。这里有一个例子:

    User:
      columns:
        id:
          type: integer
          primary: true
          autoincrement: true
        name: string(300)
        email: string(300)
        phone: string(9)
        car_id: integer
      relations: 
        Car: 
          local: car_id
          foreign: id
          foreignType: many
    
    abt数据类型

    好吧,条令列类型和数据库列类型“略有”不同。只是比较一下,比如说

    在哪里可以了解更多关于在yaml和数据装置中创建数据库标记的知识

    条令手册和章节

    我可以把它放在用户端吗(只是好奇)

    是的,但是这一部分将被称为
    foreignType
    。这里有一个例子:

    User:
      columns:
        id:
          type: integer
          primary: true
          autoincrement: true
        name: string(300)
        email: string(300)
        phone: string(9)
        car_id: integer
      relations: 
        Car: 
          local: car_id
          foreign: id
          foreignType: many
    
    abt数据类型


    好吧,条令列类型和数据库列类型“略有”不同。只是比较一下,比如说,。

    我知道这很古老,但我发现这些东西让人困惑,现在仍然如此。事实上,我不是所有可能性的专家,这只是基于对我有用的东西。我认为您可能在寻找多对多关系,但我完全避免了对它们的理论支持,而是明确定义了自己的关联表,因此我只使用一对多和一对一关系

    如UPDATE1中所述,您仅在具有外键的一端指定关系

  • 在这种情况下,用户有一个列car\u id,该列是 指Car的id列。因此,在用户端,关系 对于Car,包含键值的本地列为 car\u id,它所指的另一个(外部)表中的列是id
  • 条令定义了自己的数据类型,并自动映射它们 您正在使用的特定数据库的数据类型。 develop7提供了文档的链接,或者您可以在 理论来源
  • foreignAlias为外部的关系命名。 没有别名,因为侧边的关系名称无效 包含外键的名称由级别上使用的名称提供 以下关系:,通常指定为 外键引用的表
  • 关于更新2:

    class:Contact用户的yaml表示它有一个名为Contact的关系,它引用了类Contact。默认情况下,类名和表名相同;yaml模式只处理类名,尽管可以告诉它对给定的类使用不同的表名

    foreignAlias:User联系人与用户之间的关系名称为“User”。如上所述,没有所谓的“别名”,从用户到联系人的关系的名称是“联系人”,因为这是该行显示的用户关系列表中的名称。当然,如果您碰巧在同两个类之间有多个关系,那么这些默认关系命名就会崩溃;您需要能够给出与类名不同的显式关系名。关系的名称很重要,因为在DQL联接中使用它们

    foreignType:one联系人(外方)有一个用户

    类型:一个用户(本地方)有一个联系人

    请注意,此示例在显式显示同一关系的两侧方面有点不寻常。通常,您只会在包含外键的一侧(用户侧)显示它。由于用户包含指向联系人的外键,“类型”只能是“一”。但是foreignType可以是“many”,表示一个给定的联系人可以被多个用户指向,尽管在这种情况下,指定只有一个用户可以引用一个给定的联系人


    如果将类型指定为“many”,我实际上不知道会发生什么。实现这一点需要一个额外的关联表,就像多对多关系一样,我不知道信条是否会像多对多关系那样“自动”创建这样一个表。在我使用原则时,我尽量避免使用基于命名约定的隐式机器,因为我不太了解这些命名约定,所以我关闭了“检测关系”并避免使用多对多关系。

    我知道这很古老,但这些都是我发现令人困惑的事情,现在仍然如此。事实上,我不是所有可能性的专家,这只是基于对我有用的东西。我认为您可能在寻找多对多关系,但我完全避免了对它们的理论支持,而是明确定义了自己的关联表,因此我只使用一对多和一对一关系

    如UPDATE1中所述,您仅在具有外键的一端指定关系

  • 在这种情况下,用户有一个列car\u id,它是一个foreig