Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数据库设计:一个表对三个表

数据库设计:一个表对三个表
EN

Stack Overflow用户
提问于 2010-07-05 21:53:41
回答 3查看 168关注 0票数 4

我有以下情况,我想知道你的意见和投入。我的申请有一家公司。每家公司都有很多部门,而这些部门又有很多用户。我有一个所有级别的日历。因此,公司有一个中央日历,每个部门有单独的日历,每个用户有单独的日历。当用户对公司中的事件感兴趣时,他/她可以将它添加到他们的calendar.Now中,我需要有一个或多个事件表。

  • I应该有一个表,它将有一个字段来唯一地标识每个实体(公司、部门、用户),并且根据查询对象的不同,我可以检索相应的结果--
  • ,我应该有多个表。公司一张表,部门一张表,用户一张表。

所以这更像是一张桌子对三张桌子。

EN

回答 3

Stack Overflow用户

发布于 2010-07-05 21:58:16

查看应用程序需求--如果不同级别的事件本质上是相同的(具有相同的数据需求、行为),那么您可能应该只使用一个表。如果它们将是不同的,那么使用不同的表。

票数 1
EN

Stack Overflow用户

发布于 2010-07-05 21:58:59

我不认为事件需要知道他们是否属于公司,部门的用户直接。我怀疑事件属于日历,日历属于公司、部门或用户?

因此,日历表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CALENDAR_ID

然后是一个事件表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
EVENT_ID

和一个"EVENT_TO_CALENDAR“表(为了许多到多个关系的目的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CALENDAR_ID
EVENT_ID

如果用户可以在公司日历中看到事件,他们可以说“将其添加到挖掘”,这将在EVENT_TO_CALENDAR表中创建一个新记录,该记录具有相同的EVENT_ID,但具有唯一的CALENDAR_ID。该事件现在链接到每个日历(公司和用户的日历)。

票数 1
EN

Stack Overflow用户

发布于 2010-07-05 22:01:44

我想我会为三张桌子辩护。首先,如果您选择一个表,它将得到三个可空的外键。这意味着您不能仅仅从数据库模型中保证一致性,但是您必须在业务逻辑的某个地方保证它的一致性。其次,随着时间的推移,你很可能会发现公司日历与员工或部门日历略有不同。例如,后者可能需要增加一列。你只是无法预测。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3183806

复制
相关文章
数据库表设计对性能的影响
很多人看来,数据库Schema设计是一件非常简单的事情,大体按照系统设计时候的相关实体对象对应成一个一个表格就可以了。为了在功能上尽可能容易扩展,根据数据库范式规则进行调整,做到第三范式或第四范式,基本就算完事了 真的这么简单么?看一个案例 需求概述:一个简单的讨论区系统,需要有用户、用户组、组讨论区这三部分基本功能 简要分析: (1)须要存放用户数据的表; (2)须要存放分组信息和用户与组关系的表; (3)须要存放讨论信息的表 方案一:分别用4个表来存放用户、分组、用户与组关系,以及各组的讨论帖子的信息,
dys
2018/04/02
1.4K0
Oracle数据库 表连接与表设计
select deptno,e.ename,d.dname from emp e natural join dept d;
wolf
2020/09/21
2.2K0
数据库表设计之用户权限表[通俗易懂]
需求分析 1、管理员给用户分配权限,权限数据写到数据库中。 2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)
全栈程序员站长
2022/11/10
3.8K0
数据库表设计之用户权限表[通俗易懂]
数据库表中多对多关系怎么设计?
create table TeacherStudent(id int not null,tid int not null,sid int not null);
马克java社区
2021/05/18
1.7K0
数据库表设计 到 dataware house 表设计 --- 拉链表
首先的说说拉链表到底是个什么东西,DB 一般听到一种表,可能会联想到某种物理方面的技术,如临时表, template table , 继承表,等等, 今天的拉链表本身不是一项物理技术,而是一种逻辑技术。通过某种设计,来达到某些目的的,人为的方法。
AustinDatabases
2019/12/24
1.2K0
数据库表设计 到 dataware house 表设计 --- 拉链表
rbac权限管理设计 7表_数据库角色权限表设计
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)
全栈程序员站长
2022/11/10
4.9K0
rbac权限管理设计 7表_数据库角色权限表设计
数据库表中一对多关系怎么设计?
举例: Teacher "qixy" has two students: liyaohua,fuwenlong. Teacher "huanglaosh" has two students: mashuai,jiaxiaohu.
马克java社区
2021/05/18
8850
权限设计(上) - 数据库表设计
web权限设计,做权限目前有三种主流实现方式 第一种:手动实现   配置2个拦截器,一个是拦截是否登陆,一个是拦截url的权限,通过角色权限表的配置,把权限url的路径与访问资源的url进行匹配 第二
风间影月
2018/04/04
1.9K0
权限设计(上) - 数据库表设计
数据库-库表设计 【分享一些库表设计经验】
一对一,一般用于对主表的补充。假设A表为用户信息表,存储了用户的姓名、性别、年龄等基本信息。用户的家庭住址信息也属于用户的基本信息。我们可以选择将用户的家庭住址信息放到用户信息表,也可以单独建一张表,存储用户的家庭住址信息,以用户信息表的主键作为关联。
全栈程序员站长
2022/09/06
1.6K0
数据库-库表设计 【分享一些库表设计经验】
商城数据库表设计介绍
  一个商城系统,需要有,用户表,商品表,商品分类表,购物车表,订单表,订单明细表,支付信息表,以及物流信息表。   使用PowerDesigner对数据表以及他们之间的关系进行了粗略的设计得出了如下E-R图:
Lansonli
2021/10/09
2.1K0
Access数据库表设计步骤
大家好,上节介绍了Access数据库表中常见的概念,Access数据库中表的部分主要难点就在于表的设计,本节主要是串联一下Access数据库中表设计时的大概步骤,只先了解即可,具体的内容部分后面根据分解的知识点展开讲解。
无言之月
2019/10/13
4K0
数据库表结构设计原则有哪些_数据库表的设计方法
转载自: http://hi.baidu.com/yzx110/blog/item/0159fadc7b7839a4cd116686.html
全栈程序员站长
2022/09/30
7290
(2) 电商数据库表设计
用户数据库(mc_userdb):用户信息表(customer_inf)、用户登录表(customer_login)、 用户级别表(customer_level_inf)、用户积分日志表(customer_point_log)、用户余额变动表(customer_balance_log)、 用户登录日志表(customer_login_log) 商品数据库(mc_productdb):品牌信息表(product_brand_info)、商品分类表(product_category)、供应商信息表(product_supplier_info)、商品信息表(product_info)、商品图片信息表(product_pic_info)、商品评论表(product_comment) 订单数据库(mc_orderdb):订单主表(order_master)、订单详情表(order_detail)、用户地址表(customer_addr)、仓库信息表(warehouse_info)、物流公司信息表(shipping_info)、 购物车表(order_cart)
用户1214487
2022/03/26
7390
数据库表设计 基本思路[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。好的数据结构会影响速度。好的数据库表设计会影响数据库操作效率。特别是数据多的时候,如果表的结构不好的话操作的时候条件(where后的内容)会变的非常复杂。 SQL是关系数据库中用到的一种语言。所以,为了简化SQL,表的关系(内部和外部)要尽量设计的合理。 下面有几个可以参照的步骤: 1)找出那个表要描述的东西; 2)列出你想通过这个表得到的相关信息的列表; 3)通过上面的信息列表,将信息划分成一块块小的部分,通过此小块来建表; 比如说: 现在需求是: 1)我需要一个表来管理我的朋友的个人信息; 2)我想要的是:通过名字查到某人的地址,生日和邮箱; 3)将上面的信息划分成一块块分别对应表里的一个字段,所以表可以如下: 姓名
全栈程序员站长
2022/09/06
9420
树形结构的数据库表设计
程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将Tree存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型数据库中存储树形结构的关键。
全栈程序员站长
2022/09/06
2.6K0
树形结构的数据库表设计
MySQL数据库表设计规范
1、一般都使用 INNODB 存储引擎,除非读写比率<1%,才考虑使用 MYISAM 存储引擎;其 他存储引擎请在 DBA 的建议下使用。 2、Stored procedure (包括存储过程,函数,触发器)对于 MYSQL 来说还不是很成熟, 没有完善的出错记录处理,不建议使用。 3、UUID(),USER()这样的MySQL INSIDE 函数对于复制来说是很危险的,会导致主备数据不一致,所以请不要使用。如果一定要使用UUID作为主键,让应用程序来产生。 4、请不要使用外键约束,如果数据存在外键关系,请在程序层面实现。 5、必须采用 UTF8 编码。
赵腰静
2019/05/08
2.8K0
数据库设计-简化字典表[通俗易懂]
   在进行数据库设计时,我们经常会遇到各种各样的业务需求,从而设计出各种各样的表。而想要做好一个数据库,不但需要前期对各种业务需求的深度理解,还需要在后期项目完善的过程中对数据库更新修改从而使得数据库设计的越发完美。   对于那些涉及到业务的表或许不太好入手,但项目中经常出现的各种字典表就很好入手了。项目越大那么字典表就少不了,字典表就是常见的类型、状态、单位之类特定的一些值。有些人每一个业务或模块都设计一个字典表用来标识类型或状态等等,这样表的数量就不少了。其实我们可以将一些字典表合并起来,用两个表就能实现多个表的功能。下面我以三个状态表来演示。   下面是三张表的内容,表名分别是Order_Status、Clip_Status、RedPacket_Status
全栈程序员站长
2022/07/25
2.8K0
数据库设计-简化字典表[通俗易懂]
数据库表结构设计[通俗易懂]
为什么要学习数据表结构设计 实际开发中,需要根据需求,将实际模型转换成物理表结构,这时需要考虑几个问题,表名称如何命名,表中需要哪些字段,各个字段的命名规范,字段的数据类型,字段的长度,和其他表的联系,这些都是需要考虑的。
全栈程序员站长
2022/09/30
9870
数据库表结构设计[通俗易懂]
嵌套评论的数据库表设计
设计嵌套评论数据库表可仿效无限级分类,在表中加一个ParentId字段。嵌套评论页面大致这样:
全栈程序员站长
2022/06/29
8730
嵌套评论的数据库表设计
(二)购物商城数据库设计-商品表设计
举个例子:iPhone6是一个SPU,iPhone6 32G 白色是一个SKU,iPhone6 128G 白色是另一个SKU。
全栈程序员站长
2022/09/06
3.8K1
(二)购物商城数据库设计-商品表设计

相似问题

三个相关表的数据库表设计重组

311

1对2表(数据库设计)

12

数据库设计.三个表之间的关系

37

数据库设计:多个表与一个表

32

对三个表求和

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文