小编Nic*_*ick的帖子

在model :: beforeSave中添加关联数据

我试图在cakePHP beforeSave()期间添加相关数据但看起来像cakePHP忽略它.

<?php
App::uses("AppModel", "Model");

class Recipe extends AppModel {
    public $hasMany = array('Ingredient');

    public function beforeSave($options=array()) {
        if(!isset($this->data["Ingredient"])) {
            Debugger::log("data[Ingredient] didn't exist! adding some ingredients...");
            $this->data["Ingredient"] = array(
                array(
                    'Ingredient' => array(
                        'name' => 'Gluten Free Flour',
                        'amount' => '12 cups'
                    )
                ),
                array(
                    'Ingredient' => array(
                        'name' => 'Sugar',
                        'amount' => '50 cups'
                    )
                ),
                array(
                    'Ingredient' => array(
                        'name' => 'A shoe',
                        'amount' => 'Just one'
                    )
                ),
            );
        }
        Debugger::log("Saving Data: ");
        Debugger::log($this->data, 7, 10);

        return …
Run Code Online (Sandbox Code Playgroud)

cakephp

3
推荐指数
1
解决办法
638
查看次数

在 MySQL 数据库中存储非关系元数据

我想知道在 MySQL 数据库中存储非关系元数据的最佳方式是什么?不会查询数据,因此不需要对数据应用索引。

这是我尝试的第一个例子,理论上看起来不错,但事实证明我使用的 ORM 很难解析成有用的结构:

CREATE TABLE test (
  id INT(11) PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(255)
);
CREATE TABLE test_metadata (
  id INT(11) PRIMARY KEY AUTO_INCREMENT,
  test_id INT(11),
  name VARCHAR(255),
  value TEXT,

  FOREIGN KEY (test_id)
  REFERENCES test(id),
  UNIQUE KEY `uk_test_id_name` (test_id, name)
);
Run Code Online (Sandbox Code Playgroud)

完整示例: http: //sqlfiddle.com/#!2/9d84f1

然后我正在考虑尝试的另一个解决方案是将元数据作为 JSON 存储在架构中的另一列中,如下所示:

CREATE TABLE test2 (
  id INT(11) PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(255),
  metadata TEXT
);
Run Code Online (Sandbox Code Playgroud)

不过,这样做可能有很多缺点,从我的角度来看,我认为更新元数据在SELECT调用之前需要额外的操作UPDATE

以下哪种解决方案最适合将元数据存储在关系数据库中?还是有更好的方法我没有看到?

mysql sql metadata relational

-1
推荐指数
1
解决办法
3036
查看次数

标签 统计

cakephp ×1

metadata ×1

mysql ×1

relational ×1

sql ×1