![]() |
1
1
前者是3nF,适当的标准化数据。
不会自动为外键创建索引。在外键上创建索引是有意义的——它很可能被用作标准,但是应该考虑数据和对它的访问。MySQL对分配索引的空间量有限制(我不知道其他人会这样做),而且索引有助于数据检索,但它们也会影响insert/update/delete语句。如果处理SQL Server,我 highly recommend reading Kim Tripp's The Tipping Point series .
联接是数据检索和操作的首选方法,而不是说子查询… |
![]() |
2
4
如果您有一个“已批准”的车辆类型列表供用户从“车辆类型”表中选择,那么在数据输入表单中也很有用。如果你不这样做,你会以拼写错误和不在清单上的车型而告终。另外,当添加新的车辆类型时,您不必更改数据输入前端。如果您正在填充查询的下拉列表,则查询将只获取表中的所有车辆类型。 |
![]() |
3
1
请记住,nvarchar每个字符需要2个字节,因此如果int是4个字符,那么要使用相同的空格,在nvarchar列中只能使用2个字符。 如果tinyint(最多255个)不够,我将使用int甚至smallint(最多32767和2字节的存储空间) 所以我会用第一张桌子 不知道您的查询将是什么样子,但可能是切换列并从typeid开始的想法。 |
![]() |
4
1
对的。另外,对于目前未使用的“车型”,如燃料电池汽车,又该怎么办呢? 这些是“ data modification anomalies “ 其他人回答了索引问题… |
![]() |
5
0
基本上,您要做的就是对表设计进行非规范化。当涉及到报告目的时(当有数百万条记录时),这基本上是有用的,但是为了应用目的,我将使用一个规范化的数据库,并在其上建立适当的索引。这也有助于参考完整性。 希望这有帮助。 |
![]() |
6
0
小心更改“中的名称”
拾取列表
'(域)例如
如果您使用 外键 那么该类型的所有现有条目都将受到影响-这是否有效?
我不知道什么
|