我试图找出一个特殊的UNIQUE约束:表中有很多列Users,但只有这两列与问题相关:
id bigint,
active boolean,
...
Run Code Online (Sandbox Code Playgroud)
我想允许多行具有相同的id-但其中只有一行可能具有active = true.
例如,可以有很多行包含id = 1和active = false,但只有一行可以包含id = 1和active = true。
我有一个 3NF 规范化数据库设计,并试图理解强实体类型与弱实体类型的概念,我的理解是弱实体类型是没有主键的表。但是,所有表都应该有一个主键,从而使它们成为一个强大的实体吗?那么我所有的表都是强实体吗?或者我错过了什么?
重新思考,我的连接表有复合键,(在 maria db 中也制作了一个复合键,您执行 PRIMARY KEY(column1, column2)),那么这些类会作为弱实体吗?
我想知道制作带有多个孩子的父表的最佳解决方案是什么?
我必须制作多个儿童表。每个配置文件一个。
有没有比在父表中有 3 个外键更好的主意?
我想弄清楚如何设置数据库结构。
有~10000个员工。会有一张表来存储员工的基本信息,还有一张表来存储员工的交易,所以我决定为所有员工创建单独的表来记录他们的交易,这意味着~10000表。
所以我的问题是,创建那么多表(~10000)或您可以建议的任何其他方法是否有效,我将在 LAN 中使用 MySQL 作为数据库和 Java 客户端。
当用户查看页面时,我想在页面视图的数据库表中添加一个新行。
这可以通过增加页面表中某个页面的查看次数来轻松完成。
但是,我想对点击垃圾邮件发送者有更多的控制;D。我的意思是,我想在我的表中添加一个名为例如page_views_all的新行,前提是没有具有相同 IP 的先前记录或相同 page_id 的先前记录的时间且相同 IP 不少于 5 分钟。因此,相同的文章视图只能每 5 分钟添加一次,如果具有相同 IP 的用户多次点击相同的文章(例如查看新评论和刷新页面),那么这不算为点击,也不是作为新行添加到数据库中。
我正在考虑创建 3 个表,我想听听您对我的想法有何看法,以及我该如何改进。
所以,我想要3张桌子:
1)page_views_all(用于存储每个page_view;除了我上面所说的每5分钟限制相同的IP)
2) page_views_grouped_by_page_id (CRON 将每 30 或 60 分钟运行一个脚本来检查 page_views_all 表,并按 id 将所有行分组并计算它们并存储每个页面 id 的页面浏览量;这样我们可以多次减少表大小,因为我们不只将用户计入页面)
3) page_views_by_day一个简单的表,每天只有一条记录(每天午夜通过 CRON 运行;将对这一天的所有页面浏览量和唯一访问者数量等进行排序;预计一年只有 365 条记录)
也许是第 4 个表 ;) page_views_domain(再次通过 cron 并存储从网站开始的所有时间的 page_views 总量。
您如何看待这种方法?MySQL有没有更简单的解决方案?重要的是我想保存访问者的 IP、用户代理、访问时间、page_id,也许还有 previous_page_id(referrer)。我正在使用 Disqus 并且我的系统中没有登录用户,因此在我的情况下不会存储 user_id,只是 IP 地址。
如此多的用于存储 page_views 的表背后的理念是,我希望网站速度更快,并通过表 2 (page_views_grouped_by_page_id) 或表 3 (page_views_by_day) 而不是来自大表 1 的结果为用户提供服务,我可以加快网站速度有点,至少我是这么认为的。
我不确定的一件事是,如果通过 CRON 对盯着每个 page_view 的第一个也是最大的表进行查询不会减慢网站的速度?如果我会这样做,例如每 …
我们目前有一个用于报告的大型数据库。这包含多个表,其中只有一些是相关的。
例如,我们有一个部门的 5 个表,另一个部门的 2 个表,等等。数据可以在部门之间流动,但表之间没有结构链接——没有外键关系,没有重复的表。我们还有一些查找表,这些表由填充每个部门中的大量表的过程使用 - 日历、邮政编码,诸如此类。
这是作为单个大型数据库的最佳选择,还是分离为具有主题链接表的较小数据库?这些表会增加,并且随着新部门的建立,它们的数量也会增加。随着时间的推移,我们会注意到任何退化,还是小到微不足道?
任何有关阅读内容的建议或指示都非常感谢。
我知道有很多关于多对多关系的问题,但似乎没有一个对我有用,因为它更多地是关于概念而不是代码的问题。所以我需要澄清一下如何实现我的想法。
我正在尝试制作乐高数据库。我有可以有很多小人仔的套装。某些 MINIFIGURES 也可以出现在许多 SETS 中。我是这样做的,在 Excel(csv) 文件中。它是 SETS “表”。
Id Set_Name Set_Id Minifigures_List
1 Spider-Man's Doc Ock Ambush 6873 Doc Ock, Spider-Man, Iron Fist
2 Spider-Man: Spider-Cycle Chase 76004 Spider-Man, Venom, Nick Fury
3 Electro 5002125 Electro
.....
Run Code Online (Sandbox Code Playgroud)
我的数据库实现的第一步是创建一个SETS表。
CREATE TABLE Sets (
ID int NOT NULL AUTO_INCREMENT,
Set_Name varchar(255),
Set_Id varchar(255),
);
Run Code Online (Sandbox Code Playgroud)
然后插入数据:
Insert into Sets (Set_Name, Set_Id)
VALUES ('Spidermans Doc Ock Ambush' , '6837'),
('Spider-Man: Spider-Cycle Chase' , '76004')
('Electro', '5002125')
;
...
Run Code Online (Sandbox Code Playgroud)
下一步是创建一个MINIFIGS …
我的场景是我有一个名为 PERSON 的超类型和两个子类型 EMPLOYEE 和 CUSTOMER。我在 EMPLOYEE 和 CUSTOMER 中使用来自 PERSON、PersonID 的主键作为外键。但是,我没有将它用作 EMPLOYEE 和 CUSTOMER 中的主键,而是在它们各自的表中创建了一个名为 EmployeeNum 和 CustomerNum 的新代理主键。我想知道如果我这样做会破坏某种形式良好的/规范化规则吗?例如,在 EMPLOYEE 中,我认为很清楚,personID-->(employeeid,hiredate,hourlywage) 和employeeid-->(personid,hiredate,hourlywage),本质上这两个键都可以单独标识一个唯一的行。在实践中可以吗?(也假设我不想要复合主键)。
我们在 ms sql server 中有一个生产数据库,我的团队也在同一个 prod 数据库上进行测试。我想知道哪些是测试数据,以便将来我可以删除这些条目。我如何区分这些?任何帮助,将不胜感激。谢谢
foreign-key ×2
mysql ×2
schema ×2
sql-server ×2
many-to-many ×1
mariadb ×1
postgresql ×1
primary-key ×1
table ×1