我正在为基于“人才”的应用程序设计数据库,例如:
模型
演员
歌手
舞者
音乐家
我昨天开始了一个类似的问题,从回答中取得了一些进展,但我认为现在开始一个新问题会更容易。这就是我现在所拥有的:
Table talent:
- id
- name
Table subtalent:
- id
- name
- talent_id (FK)
Table user:
- id
- name
任何在网站上注册的用户都可以为其中一个或多个人才创建个人资料。天才可以有次级天赋,例如演员可以是电视演员、剧院演员或配音演员。
现在我需要知道以下问题的答案:
1)我应该如何存储用户拥有的人才和子人才。我想还需要两个表(人才用户和次人才用户)?
2)用户可以指定每个顶级人才的具体信息。每个人才的领域会有所不同,所以我想这需要另一组表格?如何将它们链接到用户记录,即外键是什么?
最佳答案
1)我同意。
Table talent_user:
- id
- user_id
- talent_id
Table subtalent_user:
- id
- user_id
- subtalent_id
2)我认为答案取决于几个因素。如果你确切地知道不同的形式对不同的人才来说是什么,我会把事情简单化(比如“不要想太多”),并为你将拥有的每一种不同的形式创建一个表。否则,您可能希望所有表单只有一个表,并将表单数据保存为XML。这样,您就可以保留原始表单的结构,而不需要太复杂的数据库模式。
关于sql - 关系数据库设计(MySQL),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4335668/