我想提高通知板的速度。它从event表中检索数据。此时,events MySQL表如下所示
id | event_type | who_added_id | date
在event表中,我存储了一行关于特定事件的信息。每次用户A请求新的通知时,查询都会遍历该表,并查看用户B添加的通知是否适合他(他们必须是朋友、相同组的成员、以前曾聊天过)。表events变得很大,因为庞大的查询页面加载速度很慢。我正在考虑完全改变这个设计,而不是添加一个事件行,然后比较用户的事件是否适合,而是添加与感兴趣的用户一样多的行。我将按如下方式更改表events结构:
id | event_type | who_add
我很想知道在下面的场景中构造关系数据库表的最佳方法是什么。
假设表正在记录加密货币的价格。有四个重要方面:
1. An ID
2. The date and time
3. What cryptocurrency it is
4. The price
我正在考虑两种可能的方法来构造结果表,或者:
ID Date Crypto Price
1 2018-01-01 12:00:00 BTC 100000
2 2018-01-01 12:00:00 ETH 1234
或
ID
假设下面的“保留”表有两列Reservation_Number和Guest_Name。Reservation_Number是唯一的候选密钥:
Reservation_Number Guest_Name
------------------ ------------
1 john smith
2 john smith
3 john smith
4 jane doe
5 bob anderson
我的项目有一个类软件和另一个类操作系统。一个软件可能支持多个操作系统(我的实际问题要复杂得多)。
我不知道如何在我的数据库中以最有效的方式保存它。我的桌子结构如下:
表: os
id name platform
=================================
winxp Windows XP windows
win7 Windows 7 windows
...
表:软件
id name publisher os
===========================
我正在制作一个网站,允许人们创建一个事件,与之相关的人,以及一个待办事项列表。对于人来说,会有名字/电话/头衔。对于待办事项列表,将有一个任务和一个用于判断是否完成的布尔值。
我的问题是,我是只在数据库的表(事件)的单个字段中输入一个数组来表示人员,还是为“相关人员”创建一个单独的表,并使用连接将他们链接起来。我担心的是,所有这些人都是用户生成的,创建一个完整的表似乎是一种浪费。同样,我可以创建一个带有ID、任务名称、用户ID和布尔值的" to -do“表,但是除了创建它们的用户和它们所属的列表之外,这些列表中的每个列表很可能永远不会与数据库中的其他任何内容相关。我可以创建一个To_D