数据库关系我为什么要使用它们?

时间:2015-10-04 12:47:10

标签: mysql

我只是建立了一个网站,其中包含订单和每个订单的聊天信件。我有一个订单表,每个订单指定一个用户。

如果我在表格中添加关系会对它产生怎样的影响呢?我还能使用JOIN LEFT方法查询数据库吗?

我为什么要使用它?

我想确认我的ORDERS表有user_id字段而我的users表没有order_id字段,这是正确的想法吗? 我还没有对每个订单上的聊天功能做同样的事情,因为我仍在尝试了解该表中需要哪些字段才能正确地使用php进行查询。

1 个答案:

答案 0 :(得分:1)

你在谈论两个不同的概念:

  1. 数据输入:关系是用于确保数据完整性的方法之一。它限制了可以插入数据库的数据。

  2. 数据检索:您提到的LEFT JOIN是用于从数据库中检索数据的方法。它有点过滤数据,所以你得到你想要的东西,而不是返回整个表格。

  3. 你不必使用这两者中的任何一个。他们在那里帮助你,但他们不是必需的,你可以通过其他方式获得类似的结果。更重要的是,它们完全不相关。如果您使用关系,则不需要使用LEFT JOIN或任何其他联接。如果您不使用关系,您仍然可以使用联接并获得相同的结果。

    如果您不使用关系,您的应用可以决定如何将数据输入数据库。如果您不使用联接,则可以使用子查询。哪种方式实际上很大程度上取决于您的要求,但可能在大多数情况下,使用关系和连接是可行的方法。

    例如,下面的两个查询是等效的。第一个使用连接,第二个不使用连接:

    SELECT users.name, orders.id
    FROM users
    INNER JOIN orders ON users.id = orders.user_id
    
    SELECT users.name, orders.id
    FROM users, orders
    WHERE users.id = orders.user_id