【发布时间】:2017-07-21 03:05:53
【问题描述】:
我们公司有许多不同的实体,但这些数据库实体中有很大一部分是人。所以我们有客户、员工、潜在客户、承包商和供应商,他们都有某些共同的属性,即姓名和联系电话号码。
我可能在面向对象的思想上过火了,但现在我正在考虑制作一个包含所有人员的“人员”表,并使用标志/子表“扩展”该模型并将基于角色的属性添加到联结表有必要的。如果我们增长到 250.000 人(在 MySQL 和 ISAM 上),这会极大地影响性能,以至于未来的 DBA 会永远诅咒我吗?我们最常见的搜索是姓名/姓氏组合。
例如像 Salesforce 这样的公司,客户/潜在客户/员工都在一个带有子视图的集中表中(因为需要更好的术语),还是它们被分成不同的表?
警告:这个问题与“我们发现在现实世界中这样做更好”有关,而不是理论设计。我喜欢上面的解决方案,并且相信有了视图、适当的大小和准确的索引,性能不会受到影响。我也觉得上面说的不算MUCK,就是一张挺大的桌子。
【问题讨论】:
标签: mysql database database-design