首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spay/中性粒诊所数据库设计

spay/中性粒诊所数据库设计
EN

Stack Overflow用户
提问于 2013-07-17 23:55:51
回答 1查看 392关注 0票数 0

我正在为一个绝育诊所建立一个数据库。我想我已经解决了所有的问题,但我想从我的数据库方面获得第二种意见。我们假设有100,000+客户端,每个客户端有多个宠物,每个宠物有多个工作/发票(他们所做的不仅仅是spay/中性)。至少,我的petdetails表需要处理10,000,000多个条目。如果有更好的方法来优化我的数据库为这样一个不断增长的系统,欢迎所有的建议。我正在考虑使用MySQL作为数据库,因为我们正在寻找一个基于网络的系统,每一个托管公司都有。

我使用了一个在线数据库设计工具来帮助构建系统。可以找到以下内容:联机数据库设计器单击保存/加载->负载(服务器下),将->输入到字段:spay/中性

以下是我的要求:

  • “客户”不一定要有“用户”。“用户”必须有一个“客户”。
  • “客户”可以有多个“笔记”。“宠物”可以有多个“音符”。
  • 客户可以有多个宠物,但每个宠物有一个客户端。
  • 一个约会可以有多个“宠物”。预约只会使每只宠物只有1只'appt‘。
  • 每个约会都有一个日期/地点。没有具体的时间。
  • “拜访”是宠物在某一天发生的一切(类似于商店里的订单)。
  • “services_rend”和“goods”适用于宠物。当选择宠物时,所有的内容都会被加载(pet_id值的原因)。
  • 多个“医生”可以在宠物上工作,宠物可以在一天内改变“位置”(这就是为什么把它们添加到“商品”和“services_rend”中的原因)
  • “物品”是可以应用于宠物的个别物品。项可以与一系列的“子项”一起分组。
  • “计划”是客户可以预订一个'appt‘的空缺列表。
  • verbage和代码被放置在自己的表中,以防它们以后需要更改。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-18 00:26:28

这似乎本质上是一个简单的兽医病人关系管理应用程序,您正在构建,与预约,服务提供和计费功能。

模式的一些审查要点:

  • 几乎所有东西都是空的。可空字段应该是例外,而不是规则。
  • 如果usersclients为1:1,则将它们折叠到一个表中。如果客户端不能有用户,或者客户端可以有多个用户,则联接是合法的。
  • 我认为petsday所代表的将被称为访问,而petdetails所代表的将是以病案术语提供的服务。
  • petsdayid不属于pet。如果您希望能够检索给定pet的“当前”pet,请查找它。
  • 反转petsdaypetdetails之间的外键:一次访问可能需要提供多个服务,而不是相反。
  • 当上述外键反转后,petidpetdetails中是异常的;除非性能需要,否则删除它。
  • codesoptions与任何东西都没有关联。这对于options来说是可以理解的,但是我建议将codes分解成多个结构相同的表,每组代码都有一个:诊断、服务等等,这样就可以构造外键来维护代码类型的安全性。
  • 您可能希望将petdetails划分为两个表,一个用于服务(服务代码为外键),另一个用于商品(以项为外键),它们之间共有字段的子集。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17712267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档