数据库设计问题。假设我有两个表:[PEOPLE]和[FRUITS]:
[PEOPLE]
- id
- fruit_id
- many other columns
[FRUITS]
- id
- name
- many other columns
与PEOPLE.fruit_id = FRUITS.id相关。
因此,fruit_id可以存储[FRUITS]表的ID中的任何值。但是问题是,我希望fruit_id除了其他值之外还存储值,例如“所有水果”,“一些水果”,“没有水果”。
我已经使用NULL作为“无毛发”值的标志。
在这种情况下最好的解决方案是什么?
出于好奇,我想问:当我想要一个外键存储多个主键的值时,该怎么办?例如:还有一个表[VEGETABLES]:
[VEGETABLES]
- id
- name
- many other columns different from [FRUITS]
我希望PEOPLE.fruits_id能够存储FRUITS.id和VEGETABLES.id的值。
我不是英语母语人士,所以请原谅我的错误。
答案 0 :(得分:0)
在用户表中存储fruit_id可以使您为一个人分配一个或一个(空)水果。 如果要为人员表中的一行分配多个水果,则需要一个数据透视表(一对多)
例如
PEOPLE_FRUITS
- people_id
- fruit_id
- unique key people_id, fruit_id
通过这种方式,您可以将任何一个水果,一个或多个水果分配给people表中的一行。 唯一键将不允许多次将同一水果分配给同一个人。
蔬菜也一样