大系统的数据库结构

时间:2011-02-05 14:22:44

标签: database database-design

我想创建一个简单的Web应用程序,它将具有从用户到项目的连接。 假设每个用户都会分配一些项目(在这种情况下,系列和剧集,以及其中很多)。

我应该如何为这样的系统(表格,字段等)规划数据库结构?这是我第一次遇到这种情况。

2 个答案:

答案 0 :(得分:1)

看起来像是典型的M:N关联。

create table person (
  id number not null primary key,
  username varchar not null, -- login
  -- email, etc
);

create table episode (
  id number not null primary key,
  ordinal number not null, -- which episode in the series
  name varchar not null, 
  -- whatever else, for instance, a link to series:
  -- series_id not null number foreign key referencing series(id)
);

-- the link table you asked about
create table person_x_episode (
  person_id number not null foreign key referencing person(id),
  episode_id number not null foreign key referencing episode(id),
  -- whatever else, like seen date, rating, etc
);

如果您需要系列和季节细分,或者用户组等,您将拥有更多表格。

答案 1 :(得分:0)

基础知识是用户表和项目表。这些有时被称为“主”表。然后你有一个交叉引用表users-items,它有一个项目的外键和一个用户的外键。这有时被称为“多对多”表。

至于专栏和其他细节,你必须告诉我们更多关于你想要追踪的内容。通常,每个事实都成为表中的一列。因此,对于一部电视剧(我猜这里你没有告诉我们太多)你可能会有一个专栏,第一季,第二季等等,这一季出来的那一年。

也许然后是一个项目表的子表(可能应该称为系列),列出那个季节中的星星。

如果您提供更多详细信息,我可以稍微编辑一下答案。