这是我的表格定义:
用户
票务
我的管理员为用户购买门票,我在桌面上有管理员和用户,但我必须从Ticket表中的User表中获取两个外键。 这个解决方案是标准的还是正常的,还是导致性能低下?
答案 0 :(得分:0)
是的,完全标准。从语义上讲,票证是由用户定义的,以及购买它的管理员,所以听起来你的设计反映了现实(这是一件好事)。
答案 1 :(得分:0)
这或多或少是标准的,虽然它有些缺陷,因为没有什么可以阻止将Admin_Id设置为“用户”id。 (这可以通过编程方式强制执行,但最终可能需要触发器。)
在性能方面,只有在创建故障单(必须通过在User表中查找来验证用户ID)或更新(同上),或者在删除用户时(必须确保用户ID是不在Ticket表中的任何一列中使用)。问题变成:这些表有多大,这些操作的频率是多少,并且(如果相关)有索引来支持这些查询?
纯粹主义者会像你这样规范你的结构:
用户强>
管理强>
<强>票务强>
(Admin是User的“子类型”。)