php - Doctrine PHP 问题

标签 php mysql database foreign-keys doctrine

我想知道您是否可以指定使用 CLI 加载表定义和数据装置的顺序。我的问题是我有两个表,每个表都有一个指向另一个表的外键约束,因此在添加记录后需要添加其中一个约束。或者也许有更好的方法来做到这一点......我不是数据库专家,今天我的头很模糊。

架构:

CREATE TABLE clients (
  id INT AUTO_INCREMENT,
  name VARCHAR(255), address VARCHAR(255), 
  primary_contact_user_id INT  # References a user record in the users table
  ...
);

CREATE TABLE users (
  id INT AUTO_INCREMENT,
  username VARCHAR(255),
  client_id INT  # References a client record in the clients table
  ...
);

ALTER TABLE clients 
  ADD CONSTRAINT clients_primary_contact_user_id_users_id 
    FOREIGN KEY (primary_contact_user_id) REFERENCES users(id);

ALTER TABLE users 
  ADD CONSTRAINT users_client_id_clients_id 
    FOREIGN KEY (client_id) REFERENCES clients(id);

最佳答案

我也不是数据库专家,但我确实花了很多时间与他们一起工作。我相信循环引用实际上是不正确的。

无论数据库理论是否认可,您都可以通过连接到另一个表来获取一个字段,因此这是一个不必要的循环引用。我建议您删除一个并更改任何查询以反射(reflect)这一更改。

根据猜测,我建议您消除 primary_contact_user_id,因为这听起来几乎像是一种可能的多对多关系,其中单个项目被选为“主要”...

如果您觉得这个设计有必要,您能解释一下为什么吗?

关于php - Doctrine PHP 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1590801/

相关文章:

javascript - 哪种方式加载 JSON 到 AngularJS 更好?

php - 了解 PDO 类初始化

PHP - 尝试输入到 MYSQL 表中

mysql - 在 MySQL 中使用 IF() 和 ON DUPLICATE KEY UPDATE

php - 根据帖子的用户名在 php mysql 博客上显示图像

mysql - 关系或关联链接的存在 (PowerDesigner)

php - mysql : Products which satisfies category conditions

javascript - 在文本框中写入后动态插入占位符

mysql - 如何对加载数据 infile 查询进行故障排除

php - Prestashop后台批量产品导入