首页 > 解决方案 > 将外键与父级关联的最佳方法

问题描述

我根本不涉足 SQL 设计,所以这可能是一个微不足道的问题。

我有一张players桌子:

CREATE TABLE players(
    p_id INT NOT NULL PRIMARY KEY,
    p_name VARCHAR(150) NOT NULL 
)

我有一张results桌子:

CREATE TABLE results(

    f_id INT NOT NULL PRIMARY KEY,
    f_datetime DATETIME NOT NULL,
    p1_id INT NULL,
    p2_id INT NULL,
    FOREIGN KEY (p1_id) REFERENCES players(p_id) ON DELETE SET NULL ON UPDATE SET NULL,
    FOREIGN KEY (p2_id) REFERENCES players(p_id) ON DELETE SET NULL ON UPDATE SET NULL
)

当我将 an 添加INSERTresults表中时,我正在添加p1_idand p2_id。为此,我需要已经在players表中定义了这些 id,并带有此 id 的随附字符串名称。以编程方式,在添加到表之前我应该​​如何处理我的数据results

  1. 检查是否p_id存在(来自我的p1_idp2_id值),如果不存在,则INSERT使用随附的字符串。
  2. 将我的数据作为普通插入添加到结果表中

或者有没有更传统的方法来做这些事情?也许一些我不知道的 SQL 怪癖?

标签: mysql

解决方案


推荐阅读