个人可以绑定/解绑一个企业,数据库如何设计?
个人和企业都可以发布文章,绑定企业后就以企业身份发布;解绑后就以个人身份发布。但只能用个人账户登录,请问账户表和文章表怎么设计?
我的方案,person 表保存个人信息和用户名、密码信息:
CREATE TABLE `person` (
`person_id` int unsigned NOT NULL AUTO_INCREMENT,
`company_id` int unsigned DEFAULT NULL COMMENT '企业认证id',
`username` varchar(255) NOT NULL
`password` varchar(255) NOT NULL
PRIMARY KEY (`person_id`),
)
CREATE TABLE `company` (
`company_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '企业认证id',
PRIMARY KEY (`company_id`),
)
CREATE TABLE `article` (
`article_id` int unsigned NOT NULL AUTO_INCREMENT,
`user_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'person_id 或者 company_id',
`user_type` varchar(20) NOT NULL COMMENT 'person 或者 company'
PRIMARY KEY (`article_id`),
)
但问题是:如果按如上方式设计 person、company 表的话,类似 article 的很多表就需要保存 user_type
,比较麻烦,有更好的设计吗?