这些表是否符合3NF数据库规范化?

pen*_*nas 6 sql database normalization

AUTHOR

  • Author_ID,PK
  • First_Name
  • Last_Name

TITLES

  • TITLE_ID,PK
  • NAME
  • Author_ID,FK

DOMAIN

  • DOMAIN_ID,PK
  • NAME
  • TITLE_ID,FK

READERS

  • READER_ID,PK
  • First_Name
  • Last_Name
  • ADDRESS
  • CITY_ID,FK
  • PHONE

CITY

  • CITY_ID,PK
  • NAME

BORROWING

  • BORROWING_ID,PK
  • READER_ID,fk
  • TITLE_ID,fk
  • DATE

HISTORY

  • READER_ID
  • TITLE_ID
  • DATE_OF_BORROWING
  • DATE_OF_RETURNING

    1. 这些表是否符合3NF数据库规范化?
    2. 如果2位作者为同一个头衔合作怎么办?
    3. 列Addresss应该拥有自己的表吗?
    4. 当读者借书时,我在BORROWING表中输入.他退回书后,我删除了那个条目,然后在HISTORY表中另外输入一个条目.这是一个好主意吗?我制止任何规则吗?我应该用一个带有DATE_OF_RETURNING列的单个BORROWING表吗?

Adr*_*der 1

我会将标题更改为多对多,并保留地址。

TITLES桌子

  • TITLE_ID, PK
  • NAME

TitleAutors桌子

  • TITLE_ID,
  • AUTHOR_ID

您可以更改 BORROWING 表以具有条目的状态(OUT、IN、MISSING、UNKNOWN)并具有 STATUS_DATE。