什么样的 SQL 关系适合这里?
您好,
我有这三个表,分别命名为 - 人员、员工、客户。 我应该使用什么 SQL 关系并符合以下标准: 1. Person保存另外两个表的初步数据。 2. 任何员工都不能成为客户。
为了添加更多内容,我正在使用 MySQL 进行设计。
我应该使用 1-1 还是 1-* 来表示人员->员工和人员->客户的关系? 非常感谢您的回复。
谢谢!
Greeting,
I have these three tables named - person, employee, customer.
What SQL relationship should I use with the following criterion:
1. Person holds the preliminary data of the other two tables.
2. No employee-person can be customer-person.
To add more, I'm designing this with MySQL.
Should I use 1-1 or 1-* to the relationship of person->employee and person->customer?
Your reply is higly appreciated.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Person 和其他两个表之间基本上存在 1-(0 或 1)关系。客户和员工是互斥的这一事实可以通过触发器强制执行。您可以查看关系类型说明的第 3.6.3 节更多信息。这是有关排他关系的维基百科文章。
You basically have a 1-(0 or 1) relationship between Person and the other two tables. The fact that Customer and Employee are mutually exclusive can be enforced via triggers. You can look at Section 3.6.3 of this explanation of relationship types for more info. Here is the Wikipedia article on exclusive relationships.
这是 sql-server 的“表继承”示例,但也应该适用于 mysql:
http://www.sqlteam.com/article/implementing-table -sql-server 中的继承
Here is an example for "tableinheritance" for sql-server, but should worl for mysql also:
http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server
您的案例看起来像是一代规格设计模式的示例。有关此问题的先前讨论,请点击链接。 这应该很简单。但我该如何设计呢?
Your case looks like an example of the gen-spec design pattern. For previous discussions on this, follow the link. This should be simple. But how do I design this?