代码之家  ›  专栏  ›  技术社区  ›  roughosing

数据库-数据库中的表必须包含所有全局实例,还是可以特定于某个ID

  •  0
  • roughosing  · 技术社区  · 7 年前

    我正试图为脸书用户建立一个数据库模型。对于我的用户表,我将{account\u name,account\u id,…,password}作为变量。我正在尝试为该用户的朋友创建一个表,例如Friendlist或Contacts表,但我想知道Contacts表是否必须有一个所有可能的朋友列表(即{user\u id,friend\u id,friends\u since,…})或者可以将联系人表特定于某个用户id(因此{contact\u id,friends\u since,no\u of\u mutual\u contacts,等等)})。

    这可能只是我大脑中面向对象的部分开始活动,但举个例子来说,如果我们使用的是电影数据库。有5家电影院,每家有5个屏幕,电影院是一张桌子,屏幕是一张桌子。屏幕表是否有25个数据实例,或者屏幕表是否以某种方式仅包含对应于特定影院的5个屏幕。

    这又回到了我最初的问题,Contacts表必须是包含所有友谊的全局表,还是Contacts表只返回特定于user\u id的联系人。

    出于某种原因,当我查看数据库的关系图时,我看到连接正在分解一个有点像对象的结构,其中链接只是表示像用户这样的成员。联系人或用户。事件。

    1 回复  |  直到 7 年前
        1
  •  0
  •   reaanb    7 年前

    通常,关系数据库中的表将记录给定类型的所有事实,例如:。 user <user_id> is friends with user <friend_id> since <friends_since> .

    如果需要,您可以为给定用户创建视图,或者只在查询中指定user\u id,以获取适用于特定用户的行子集。

    如果您想获取某个特定用户的所有行,那么创建特定于特定用户的物理表将带来困难 friend_id