我有一个包含3个字段的MySQL表:
我经常使用以下查询:
SELECT *
FROM Table
WHERE Location = '$Location'
AND Variable = '$Variable'
ORDER BY Location, Variable
Run Code Online (Sandbox Code Playgroud)
我的表中有超过一百万行,查询有点慢.如果我添加一个字段VariableLocation,即变量和位置组合,它会提高查询速度吗?我可以将查询更改为:
SELECT *
FROM Table
WHERE VariableLocation = '$Location$Variable'
ORDER BY VariableLocation
Run Code Online (Sandbox Code Playgroud) 我有下locations表:
----------------------------------------------------------
| ID | zoneID | storeID | address | latitude | longitude |
----------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
和phones表:
-----------------------
| locationID | number |
-----------------------
Run Code Online (Sandbox Code Playgroud)
现在,请记住,对于任何捐赠商店,最多可以有五个电话号码.订单无关紧要.
最近我们需要添加另一个表,其中包含商店相关信息,其中还包括电话号码.
现在,对于这个新表不适用locationID,因此我们无法将电话存储在上一个电话表中.
保持数据库规范化最终需要2个新表和总共4个连接来检索数据.对它进行非规范化将使旧表呈现如下:
----------------------------------------------------------------------------------
| ID | zoneID | storeID | address | latitude | longitude | phone1 | ... | phone5 |
----------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
共有2个表和2个连接.
我没有的粉丝data1,data2,data3因为它字段可以是一个巨大的痛苦.那么,你的意见是什么.
我正在建立一个音乐流媒体网站,用户可以购买和流式传输MP3.我有一个子集实体图,可以描述如下:

我想将数据标准化为3NF.我需要几张桌子?显然我想避免包括部分依赖,这需要更多的表而不仅仅是专辑,艺术家,歌曲 - 但我不确定还有什么要添加?有经验的想法吗?
我们的客户之间的相互关系为:供应商-买家,意思是:我们向我们所在行业的供应商和买家销售产品。
我试图将我们的客户(他们之间)的关系存储在销售人员中。这是一种多对多关系。因此,在每个帐户上,我都希望有一个相关的列表,其中包含其销售的所有买家以及从中购买的卖家(在其他帐户上反之亦然)
我尝试使用连接对象,但无法在同一对象(主要是帐户)上创建 2 个主从关系。
是否可以?
我们有一张桌子:
message (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`subject` VARCHAR(255) NOT NULL DEFAULT '',
`message` TEXT NOT NULL,
`attachment` VARCHAR(255) NULL DEFAULT NULL,
`new` TINYINT(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
现在我们需要有多个附件.
目前只保存一个附件链接.解决方案可能是添加另一个外键表或在列中使用逗号分隔值.但是我们需要一个更好的解决方案,它可以使用旧系统和新系统,而无需太多改动.有什么建议?
关于 Web 开发的任何方面(html/css、数据库开发、服务器端逻辑等),都有大量信息(书籍、博客等)。即使是涵盖所有这些主题的书籍,也能让您尽快开始使用您的个人网站。在高速互联网访问和内容容易传播的时代,这些天我缺少一个很好的资源,可以提供有关如何设计易于扩展的大型 Web 应用程序的见解、最佳实践和设计指南,其特点是:
可能看起来非常广泛,但与任何建立互联网公司的人都相关,因此迟早会面临这些问题。同样,我关注的是技术架构问题,而不是如何在此处讨论的内部管理工作流程(更大规模的 Web 项目规划)。有谁知道好的资源吗?
database-design data-modeling server-side-scripting restful-architecture
我对 Cassandra 还很陌生,我正在尝试了解如何为 IoT 传感器设计我的表。
这个想法是有几个设备,每个设备都有几个传感器定期发送数据(每个传感器每天每个设备最多大约 200000 个值)
我希望能够或多或少地实时查询特定传感器和设备列表的传感器的最新值。此外,设备并不总是发送数据,并且可能会长时间停机。
大量阅读后,我想出了这样的事情
CREATE TABLE "sensor_data" (
deviceid TEXT,
sensorid TEXT,
ts timestamp,
value TEXT,
PRIMARY KEY ((deviceid, sensorid), ts)
) WITH CLUSTERING ORDER BY (ts DESC);
Run Code Online (Sandbox Code Playgroud)
这背后的想法是对每个设备和传感器执行一个查询,例如
Select deviceid, sensorid, ts, value where deviceid = "device1" and sensorid = "temperature" limit 1
Run Code Online (Sandbox Code Playgroud)
并为每个设备和传感器运行它。这不是一个返回所有查询的查询(这将是理想的),但似乎足够快,可以为一些设备运行多达 100 个左右的传感器(可以并行化查询)。
但是,从我目前所读到的内容来看,我知道这将为我的行提供很多列,并且在长期存储和 Cassandra 限制方面可能会很复杂。
我在想,也许像这样(如某些博客和指南中所见)在表格中添加诸如日期之类的内容可能是个好主意
CREATE TABLE "sensor_data" (
deviceid TEXT,
sensorid TEXT,
date TEXT
ts timestamp,
value TEXT,
PRIMARY KEY ((deviceid, sensorid, date), ts)
) WITH CLUSTERING …Run Code Online (Sandbox Code Playgroud)