上周我问了一个类似的问题并没有得到很好的回答,所以也许我没有以正确的方式说出问题。
我想知道您的团队在编写T-SQL代码和数据库架构时采用了哪些流程/策略/规则。以下是几个例子:
1) All foreign key columns should be indexed
2) All primary key columns should be integer Identity
3) All stored procedures/user defined functions need comments
4) No underscores in T-SQL variable names
这些是我很好奇的事情。
谢谢!
答案 0 :(得分:0)
我不同意所有被索引的外键。如果只有3个选项的主表有一个外键,那么在一个包含数百万行的表中,就会产生大量无意义索引的开销。从密钥到数据的反向查找不太可能。
答案 1 :(得分:0)
似乎#1,#2和#3都是非常糟糕的规则。并不总是需要索引外键。当存在良好的自然键时创建代理键是没有意义的。注释不编译,因此它们很容易与代码不同步,并且可以欺骗读者。它们只应在绝对必要时使用。评论要实现一个坚定而快速的规则比浪费时间更糟糕。
第4项非常好。我一直在研究的团队更关注实现质量的事情(例如,所有存储过程中的错误处理都很好,而存储过程只做一件事)
答案 2 :(得分:0)
不是真的。我们在一些较大的表FK上没有索引,因为我们从不删除或更新父值,或者选择性差
主要是,但要明白为什么。也就是说,我会将3位数代码本身用于存储ISO货币代码(如CHF或GBP)的表格。而且你仍然需要对自然键