相关疑难解决方法(0)

如何创建多个一对一的

我有一个设置了许多表的数据库,除了一点之外它看起来都很好......

Inventory Table <*-----1> Storage Table <1-----1> Van Table
                              ^
                              1
                              |-------1> Warehouse Table
Run Code Online (Sandbox Code Playgroud)

由于Van和Warehouse表相似,因此使用了Storage表,但如何在Storage和Warehouse/Van表之间创建关系?因为存储对象只能是1个存储位置和类型,所以它们需要为1比1.我确实有Van/Warehouse表链接到StorageId主键,然后添加一个约束,以确保Van和Warehouse表没有相同的StorageId,但这似乎可以做得更好.

我可以看到这样做的几种方法,但它们都显得不对,所以任何帮助都会很好!

sql database sql-server database-design relational-database

7
推荐指数
1
解决办法
4637
查看次数

用于在MySQL(或任何数据库)中存储人员 - 多个表还是只有一个?

我们公司有许多不同的实体,但这些数据库实体中有很大一部分是人.因此,我们有客户,员工,潜在客户,承包商和提供商,所有这些都有一些共同的属性,即姓名和联系电话号码.

我可能已经过度使用面向对象的思维,但现在我正在寻找一个包含所有人的"人员"表,标志/子表"扩展"该模型,并根据需要将基于角色的属性添加到联结表.如果我们说有250,000人(在MySQL和ISAM上)会对性能产生如此大的影响,以至于未来的DBA会永远诅咒我吗?我们最常见的搜索是姓名/姓氏组合.

例如,像Salesforce这样的公司,客户/潜在客户/员工都在具有子视图的集中表中(因为缺少更好的术语),或者它们被分成不同的表?

警告:这个问题与"我们发现在现实世界中做得更好"有关,而不是理论设计.我喜欢上述解决方案,并且相信通过视图,正确的大小和准确的索引,性能不会受到影响.我也觉得上面不算是一个MUCK,只是一张相当大的桌子.

mysql database database-design

5
推荐指数
1
解决办法
1400
查看次数