- 用户(用户/组织/小组)作为创建者有很多故事。
- 故事包含故事的许多部分。
- 用户(用户/组织/组)具有订阅者(另一个
- 用户/组织/组)。
- 故事的一部分可能是私人的。
仅当auth()-> user()(用户/组织/组)是故事创建者(另一个用户/组织/组)的订户时,才如何选择所有部分都具有private == false和private == true的故事。
//Stories table
create table stories
(
id bigint unsigned auto_increment primary key,
creator_id int unsigned not null,
creator_type varchar(255) not null,
created_at timestamp null,
updated_at timestamp null
)
//Stories parts table
create table stories_parts
(
id bigint unsigned auto_increment primary key,
story_id int not null,
private tinyint
created_at timestamp null,
updated_at timestamp null
)
//User has subscribers (Another User/Organization/Group)
create table user_subscribers
(
user_id bigint unsigned not null,
subscriber_id bigint unsigned not null,
subscriber_type varchar(255) not null
)
//Organization has subscribers (Another User/Organization/Group)
create table organization_subscribers
(
organization_id bigint unsigned not null,
subscriber_id bigint unsigned not null,
subscriber_type varchar(255) not null
)
//Group has subscribers (Another User/Organization/Group)
create table group_subscribers
(
organization_id bigint unsigned not null,
subscriber_id bigint unsigned not null,
subscriber_type varchar(255) not null
)