Can a table have two foreign keys?

209,725

Solution 1

create table Table1
(
  id varchar(2),
  name varchar(2),
  PRIMARY KEY (id)
)


Create table Table1_Addr
(
  addid varchar(2),
  Address varchar(2),
  PRIMARY KEY (addid)
)

Create table Table1_sal
(
  salid varchar(2),`enter code here`
  addid varchar(2),
  id varchar(2),
  PRIMARY KEY (salid),
  index(addid),
  index(id),
  FOREIGN KEY (addid) REFERENCES Table1_Addr(addid),
  FOREIGN KEY (id) REFERENCES Table1(id)
)

Solution 2

The foreign keys in your schema (on Account_Name and Account_Type) do not require any special treatment or syntax. Just declare two separate foreign keys on the Customer table. They certainly don't constitute a composite key in any meaningful sense of the word.

There are numerous other problems with this schema, but I'll just point out that it isn't generally a good idea to build a primary key out of multiple unique columns, or columns in which one is functionally dependent on another. It appears that at least one of these cases applies to the ID and Name columns in the Customer table. This allows you to create two rows with the same ID (different name), which I'm guessing you don't want to allow.

Share:
209,725
Rav
Author by

Rav

Updated on July 09, 2022

Comments

  • Rav
    Rav almost 2 years

    I have the following tables (Primary key in bold. Foreign key in Italic)

    Customer table

    • ID---Name---Balance---Account_Name---Account_Type

    Account Category table

    • Account_Type----Balance

    Customer Detail table

    • Account_Name---First_Name----Last_Name---Address

    Can I have two foreign keys in the Customer table and how can I implement this in MySQL?


    Updated

    I am developing a web based accounting system for a final project.

    Account Category

    Account Type--------------Balance

    Assets
    Liabilities
    Equity
    Expenses
    Income

    Asset

    • Asset_ID-----Asset Name----Balance----Account Type

    Receivable

    • Receivable_ID-----Receivable Name-------Address--------Tel-----Asset_ID----Account Type

    Receivable Account

    • Transaction_ID----Description----Amount--- Balance----Receivable_ID----Asset_ID---Account Type

    I drew the ER(Entity relationship) diagram using a software and when I specify the relationship it automatically added the multiple foreign keys as shown above. Is the design not sound enough?