Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL体系结构原则_Sql_Database Design_Foreign Key Relationship - Fatal编程技术网

SQL体系结构原则

SQL体系结构原则,sql,database-design,foreign-key-relationship,Sql,Database Design,Foreign Key Relationship,我正在创建一个包含以下表格的网站: 成员GUID、用户名、昵称等 成员联系人、电子邮件地址、电话等, 身份证质疑问题的会员安全问题, 会员银行账户银行ID、账户等 我不确定FK关系是基于GUID、用户名还是组合。注意GUID是一个NewSequentialID 我是一个noob,但从理论上讲,基于GUID的所有FK对于索引/性能来说会更好,另外,如果GUID从未发送到客户端,则会更安全-但混合关系(即并非全部基于GUID)是否会带来任何好处?欢迎来到关于“代理密钥与自然密钥”的传统、永无休止的辩

我正在创建一个包含以下表格的网站:

成员GUID、用户名、昵称等 成员联系人、电子邮件地址、电话等, 身份证质疑问题的会员安全问题, 会员银行账户银行ID、账户等 我不确定FK关系是基于GUID、用户名还是组合。注意GUID是一个NewSequentialID


我是一个noob,但从理论上讲,基于GUID的所有FK对于索引/性能来说会更好,另外,如果GUID从未发送到客户端,则会更安全-但混合关系(即并非全部基于GUID)是否会带来任何好处?

欢迎来到关于“代理密钥与自然密钥”的传统、永无休止的辩论。你可以在这里找到一些额外的想法:我读了这个链接,谢谢。但考虑到未来,如果GUID没有发送到客户端,那么客户端返回的任何内容都将由用户名标识,然后如果FKs基于GUID,我必须在Username=X的位置选择GUID,然后让db从GUID=result的表B中进行另一次选择。或者,我可以将GUID发送/返回到客户端,原因之一是将其设置为GUID对黑客来说是无用的,然后基于GUID的所有FK都是一个更简单的选择否?但是,再次说明,为什么要将GUID发送到客户端?他们的用户名必须发送/可用,即客户端浏览器必须在他们登录后知道成员是谁,因此GUID只是额外的数据。在这种情况下,基于用户名的FKs使事情变得更简单???