假设有三个表。
表1 的 generic_ids表2
公司
COMPANY_ID
COMPANY_NAME
company_account_no
等
表3
的员工
EMPLOYEE_ID
FIRST_NAME
姓氏
middle_name
位置
等。
员工和公司有自己的地址(有时是多个地址),所以我将它们放在一个名为地址的单独表中。为了避免使用两个表,例如 company_addresses 和 employee_addresses ,我认为我的 generic_ids 表可以为公司生成ID表和员工表。然后我可以将公司表与地址表或员工表一起加入地址表,并始终区分加入有地址的公司和有地址的员工。
还有许多其他属性,例如地址。
这样做是不是一个坏主意?一些建议,改进,更好的方法?
答案 0 :(得分:0)
两种方法可以更轻松/更高效地完成您想要的任务。
1)使两个表中的id自动递增,但随着其中一个表的增量从高开始,第一个表将永远不会到达它。
2)当您加入表格时,您也可以通过执行以下操作来区分具有相同ID的人:
select concat("c",company_id) from companies
select concat("e",company_id) from employees
然后没有冲突。在我看来,仅为分类添加外键是一个坏主意。