How to determine a foreign key

I’m building a Project management DB, learning as I go along.
Is it better for tblProject to point to ClientID, TaskID, SupplierID, or is it better for tblClient, tblTask and tblSupplier to point to ProjectID? Why?
Thanks

Let me guess:

  • Each project has one client.
  • Each project has many tasks.
  • Each project has many suppliers.

That gives 4 lists of clients, tasks, projects and suppliers plus 2 mapping tables for the many-to-many relations:

CREATE TABLE CLIENTS(
    N VARCHAR(30) NOT NULL,
    ID INT IDENTITY
);
CREATE TABLE PROJECTS(
    CID INT NOT NULL,
    N VARCHAR(30) NOT NULL,
    ID INT IDENTITY,
    FOREIGN KEY (CID) REFERENCES CLIENTS (ID)
);
CREATE TABLE SUPPLIERS(
    N VARCHAR(30) NOT NULL,
    ID INT IDENTITY
);
CREATE TABLE TASKS(
    N VARCHAR(30) NOT NULL,
    ID INT IDENTITY
);
CREATE TABLE PROJECTS_SUPPLIERS(
    PID INT, 
    SID INT,
    PRIMARY KEY (PID,SID),
    FOREIGN KEY (PID) REFERENCES PROJECTS(ID),
    FOREIGN KEY (SID) REFERENCES SUPPLIERS(ID)
);
CREATE TABLE PROJECTS_TASKS(
    PID INT, 
    TID INT,
    PRIMARY KEY (PID,TID),
    FOREIGN KEY (PID) REFERENCES PROJECTS(ID),
    FOREIGN KEY (TID) REFERENCES TASKS(ID)
);