php - MySQL 学说 YAML

标签 php mysql doctrine-orm

我想要的是得到产品,产品应该是这样的:

{
  idProduct: 1,
  mainCategory: 1, // One of the categories is the main one.
  categories: [1, 2, 3],
  name: "John" //and so on.. the important thing is mainCategory...
}

我正在使用 Doctrine(在工作中)和 YAML,我知道我可以使用这样的东西:

Product:
  type: entity
  manyToMany:
    groups:
      targetEntity: Category
      joinTable:
        name: products_categories
        joinColumns:
          product_id:
            referencedColumnName: id
        inverseJoinColumns:
          category_id:
            referencedColumnName: id

这将创建类似于这三个表的内容(发挥你的想象力xD):

**Product**
id

**Category**
id

**Category_Product**
id_product
id_category

但我也需要产品中的 mainCategory:

**Product**
id
main_category #this is important and my problem.

我能做些什么来实现这个...我在 json 中放置了一个对象示例,因为很容易理解...但是我在工作中使用 PHP,使用 Doctrine..我猜 Doctrine2,我对此不确定。

在工作中,我的生产类别和产品已经在工作,但处于一对一的关系...今天一种产品只能有一个类别,我的问题是改变这一点,因为一种产品可以有多个类别,但其中一个是主要的一个。

提前致谢!!!

编辑:工作中有人建议我,第三个实体,但我对此不确定。

最佳答案

也许您可以跳出框框思考,将 mainCategory 定义为只是一个 ID。该 ID 可用于查找类别。不要通过常规原则调用 mainCategory,而是编写一个自定义函数,从该 mainCategory ID 获取 mainCategory 对象。

是的,这是手动工作,但学说本身并不支持您的场景。我担心的最重要的事情是确保 mainCategory 和 Category 保持同步,这样你就永远不会有一个不在类别中的 mainCategory。不过,如果您始终在保存时检查 mainCategory 是否在“类别”中,则可以轻松完成此操作。

关于php - MySQL 学说 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466792/

相关文章:

php - MySQL问题: The right way to calculate some data from different tables

php - 如何使用 PHP 从两个不同的表中进行选择,从结果中创建变量并对它们进行数学运算

php - 返回数组,而不是来自 Doctrine 查询的对象 - Symfony2

javascript - 重定向到新页面但记住原始位置

java - 在 Hibernate 中使用 MySQL GET_LOCK 函数执行查询

mysql - 如何安装 MYSQL 首选项面板?

php - Web 服务器事务与数据库触发器 - 哪个是首选?

php - Doctrine ManyToMany 同一实体重复输入错误

php - 如何禁用 ORM 并完全排除从 Symfony 应用程序到 mySQL 的任何连接?

php - 如何在大型单体网络应用程序中构建缓存存储/缓存清除?