/****** Object: Table [dbo].[dms_file] Script Date: 2026-09-03 8:24:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_file]') AND type in (N'U')) DROP TABLE [dbo].[dms_file] GO /****** Object: Table [dbo].[dms_file] Script Date: 2026-09-03 8:24:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_file]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [file_id] [bigint] IDENTITY(1,1) NOT NULL, [file_name] [nvarchar](256) NOT NULL, [file_path] [varchar](1000) NOT NULL, [file_size] [int] NOT NULL, [ower_id] [varchar](50) NOT NULL, [revision_no] [int] NOT NULL, [is_directory_indc] [varchar](1) NOT NULL, [is_link_indc] [varchar](1) NOT NULL, [linked_file_id] [int] NOT NULL, [org_file_name] [nvarchar](256) NOT NULL, [order_key] [varchar](50) NULL, [file_tag] [varchar](512) NULL, [allow_rename_indc] [varchar](1) NOT NULL, [allow_delete_indc] [varchar](1) NOT NULL, [file_type] [varchar](1) NULL, [landscape_indc] [varchar](1) NULL, [transcode_indc] [varchar](1) NULL, CONSTRAINT [PK_dms_file] PRIMARY KEY CLUSTERED ( [file_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_file_delete_log] Script Date: 2026-09-03 8:26:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_file_delete_log]') AND type in (N'U')) DROP TABLE [dbo].[dms_file_delete_log] GO /****** Object: Table [dbo].[dms_file_delete_log] Script Date: 2026-09-03 8:26:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_file_delete_log]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [log_id] [bigint] IDENTITY(1,1) NOT NULL, [file_id] [bigint] NOT NULL, [file_name] [nvarchar](256) NOT NULL, [file_path] [varchar](1000) NOT NULL, [file_size] [int] NOT NULL, [ower_id] [varchar](50) NOT NULL, [revision_no] [int] NOT NULL, [is_directory_indc] [varchar](1) NOT NULL, [is_link_indc] [varchar](1) NOT NULL, [linked_file_id] [int] NOT NULL, [org_file_name] [nvarchar](256) NOT NULL, [order_key] [varchar](50) NULL, [file_tag] [varchar](512) NULL, [allow_rename_indc] [varchar](1) NOT NULL, [allow_delete_indc] [varchar](1) NOT NULL, [file_type] [varchar](1) NULL, [landscape_indc] [varchar](1) NULL, [transcode_indc] [varchar](1) NULL, CONSTRAINT [PK_dms_file_delete_log] PRIMARY KEY CLUSTERED ( [log_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_folder] Script Date: 2026-09-03 8:27:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_folder]') AND type in (N'U')) DROP TABLE [dbo].[dms_folder] GO /****** Object: Table [dbo].[dms_folder] Script Date: 2026-09-03 8:27:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_folder]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [folder_id] [bigint] IDENTITY(1,1) NOT NULL, [folder_name] [varchar](50) NOT NULL, [folder_local_name] [nvarchar](256) NULL, CONSTRAINT [pk_x_dms_folder] PRIMARY KEY CLUSTERED ( [folder_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_folder_delete_log] Script Date: 2026-09-03 8:27:39 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_folder_delete_log]') AND type in (N'U')) DROP TABLE [dbo].[dms_folder_delete_log] GO /****** Object: Table [dbo].[dms_folder_delete_log] Script Date: 2026-09-03 8:27:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_folder_delete_log]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [log_id] [bigint] IDENTITY(1,1) NOT NULL, [folder_id] [int] NOT NULL, [folder_name] [varchar](50) NOT NULL, [folder_local_name] [nvarchar](256) NULL, CONSTRAINT [pk_x_dms_folder_delete_log] PRIMARY KEY CLUSTERED ( [log_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_folder_map] Script Date: 2026-09-03 8:28:18 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_folder_map]') AND type in (N'U')) DROP TABLE [dbo].[dms_folder_map] GO /****** Object: Table [dbo].[dms_folder_map] Script Date: 2026-09-03 8:28:18 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_folder_map]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [folder_name_parent] [varchar](50) NOT NULL, [folder_name_son] [varchar](50) NOT NULL, [orderby] [int] NOT NULL, CONSTRAINT [pk_x_dms_folder_map] PRIMARY KEY CLUSTERED ( [folder_name_parent] ASC, [folder_name_son] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_folder_map_delete_log] Script Date: 2026-09-03 8:28:37 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_folder_map_delete_log]') AND type in (N'U')) DROP TABLE [dbo].[dms_folder_map_delete_log] GO /****** Object: Table [dbo].[dms_folder_map_delete_log] Script Date: 2026-09-03 8:28:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_folder_map_delete_log]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [folder_name_parent] [varchar](50) NOT NULL, [folder_name_son] [varchar](50) NOT NULL, [orderby] [int] NOT NULL, CONSTRAINT [pk_x_dms_folder_map_delete_log] PRIMARY KEY CLUSTERED ( [folder_name_parent] ASC, [folder_name_son] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[family_folder_favorite] Script Date: 2026-09-03 8:28:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[family_folder_favorite]') AND type in (N'U')) DROP TABLE [dbo].[family_folder_favorite] GO /****** Object: Table [dbo].[family_folder_favorite] Script Date: 2026-09-03 8:28:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[family_folder_favorite]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [user_name] [varchar](50) NOT NULL, [folder_name] [varchar](50) NOT NULL, CONSTRAINT [pk_x_family_folder_favorite] PRIMARY KEY CLUSTERED ( [user_name] ASC, [folder_name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[family_group] Script Date: 2026-09-03 8:29:10 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[family_group]') AND type in (N'U')) DROP TABLE [dbo].[family_group] GO /****** Object: Table [dbo].[family_group] Script Date: 2026-09-03 8:29:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[family_group]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [family_name] [varchar](50) NOT NULL, [family_local_name] [nvarchar](50) NULL, [notice] [nvarchar](512) NULL, [expire_datetime] [datetime] NULL, [open_indc] [varchar](1) NOT NULL, [add_indc] [varchar](1) NOT NULL, [valid_indc] [varchar](1) NOT NULL, CONSTRAINT [pk_x_folder_group] PRIMARY KEY CLUSTERED ( [family_name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[family_group_folder] Script Date: 2026-09-03 8:29:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[family_group_folder]') AND type in (N'U')) DROP TABLE [dbo].[family_group_folder] GO /****** Object: Table [dbo].[family_group_folder] Script Date: 2026-09-03 8:29:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[family_group_folder]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [folder_id] [bigint] IDENTITY(1,1) NOT NULL, [folder_name] [varchar](50) NOT NULL, [family_name] [varchar](50) NOT NULL, [folder_local_name] [nvarchar](50) NULL, [notice] [nvarchar](512) NULL, [top_folder_name] [varchar](50) NOT NULL, [file_path] [varchar](50) NULL, CONSTRAINT [pk_x_family_group_folder] PRIMARY KEY CLUSTERED ( [folder_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[family_group_manager] Script Date: 2026-09-03 8:29:32 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[family_group_manager]') AND type in (N'U')) DROP TABLE [dbo].[family_group_manager] GO /****** Object: Table [dbo].[family_group_manager] Script Date: 2026-09-03 8:29:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[family_group_manager]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [user_name] [varchar](50) NOT NULL, [family_name] [varchar](50) NOT NULL, [manager_indc] [varchar](1) NOT NULL, [notice] [nvarchar](512) NOT NULL, [valid_indc] [varchar](1) NOT NULL, CONSTRAINT [pk_x_folder_group_user] PRIMARY KEY CLUSTERED ( [user_name] ASC, [family_name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[family_group_permission] Script Date: 2026-09-03 8:29:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[family_group_permission]') AND type in (N'U')) DROP TABLE [dbo].[family_group_permission] GO /****** Object: Table [dbo].[family_group_permission] Script Date: 2026-09-03 8:29:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[family_group_permission]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [family_name] [varchar](50) NOT NULL, [folder_name] [varchar](50) NOT NULL, [user_name] [varchar](50) NOT NULL, [create_indc] [varchar](1) NOT NULL, [delete_indc] [varchar](1) NOT NULL, CONSTRAINT [pk_x_family_group_permission] PRIMARY KEY CLUSTERED ( [family_name] ASC, [folder_name] ASC, [user_name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[dms_file_delete_log] Script Date: 2026-09-03 8:26:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dms_file_delete_log]') AND type in (N'U')) DROP TABLE [dbo].[dms_file_delete_log] GO /****** Object: Table [dbo].[dms_file_delete_log] Script Date: 2026-09-03 8:26:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_file_delete_log]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [log_id] [int] IDENTITY(1,1) NOT NULL, [file_id] [bigint] NOT NULL, [file_name] [nvarchar](256) NOT NULL, [file_path] [varchar](1000) NOT NULL, [file_size] [int] NOT NULL, [ower_id] [varchar](50) NOT NULL, [revision_no] [int] NOT NULL, [is_directory_indc] [varchar](1) NOT NULL, [is_link_indc] [varchar](1) NOT NULL, [linked_file_id] [int] NOT NULL, [org_file_name] [nvarchar](256) NOT NULL, [order_key] [varchar](50) NULL, [file_tag] [varchar](512) NULL, [allow_rename_indc] [varchar](1) NOT NULL, [allow_delete_indc] [varchar](1) NOT NULL, [file_type] [varchar](1) NULL, [landscape_indc] [varchar](1) NULL, [transcode_indc] [varchar](1) NULL, CONSTRAINT [PK_dms_file_delete_log] PRIMARY KEY CLUSTERED ( [log_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[upload_dms_file] Script Date: 2026-09-03 8:30:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[upload_dms_file]') AND type in (N'U')) DROP TABLE [dbo].[upload_dms_file] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_file_upload]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [file_id] [bigint] NOT NULL, [upload_name] [varchar](50) NOT NULL, [file_category] [varchar](8) NOT NULL, [org_file_name] [nvarchar](256) NOT NULL, CONSTRAINT [PK_dms_file_upload] PRIMARY KEY CLUSTERED ( [file_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[upload_dms_file_delete_log] Script Date: 2026-09-03 8:31:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[upload_dms_file_delete_log]') AND type in (N'U')) DROP TABLE [dbo].[dms_file_upload_delete_log] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[dms_file_upload_delete_log]( [created_datetime] [datetime] NOT NULL, [created_by] [varchar](50) NOT NULL, [updated_datetime] [datetime] NOT NULL, [updated_by] [varchar](50) NOT NULL, [file_id] [bigint] NOT NULL, [upload_name] [varchar](50) NOT NULL, [file_category] [varchar](8) NOT NULL, [org_file_name] [nvarchar](256) NOT NULL, CONSTRAINT [PK_dms_file_upload_delete_log] PRIMARY KEY CLUSTERED ( [file_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[dms_file_upload_view] AS select mdf.created_datetime, mdf.created_by, mdf.file_id, mdf.upload_name, mdf.file_category, mdf.org_file_name, dms.file_name, dms.file_path, dd.folder_local_name, dms.file_size, dms.ower_id, dms.revision_no, dms.is_directory_indc, dms.is_link_indc, dms.linked_file_id, dms.order_key, dms.file_tag, dms.allow_rename_indc, dms.allow_delete_indc, dms.file_type, dms.landscape_indc, dms.transcode_indc, '' as url from dms_file_upload mdf with(nolock) inner join dms_file dms with(nolock) on dms.file_id=mdf.file_id left join dms_folder dd with(nolock) on dms.file_path=dd.folder_name GO GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[dms_file_upload_delete_log_view] AS select mdf.created_datetime, mdf.created_by, mdf.file_id, mdf.upload_name, mdf.file_category, mdf.org_file_name, dms.file_name, dms.file_path, dd.folder_local_name, dms.file_size, dms.ower_id, dms.revision_no, dms.is_directory_indc, dms.is_link_indc, dms.linked_file_id, dms.order_key, dms.file_tag, dms.allow_rename_indc, dms.allow_delete_indc, dms.file_type, dms.landscape_indc, dms.transcode_indc, '' as url from dms_file_upload_delete_log mdf with(nolock) inner join dms_file_delete_log dms with(nolock) on dms.file_id=mdf.file_id left join dms_folder_delete_log dd with(nolock) on dms.file_path=dd.folder_name GO -- ============================================================================================== -- [备案] dms_file_usage_view —— 按用户(ower_id)分组统计网盘已用容量(dashboard 用量卡片 / 上传额度闸门) -- 真源在线上 MySQL(nas.youjiala.com:3307/Furion);上方为 SQL Server 建表脚本,此段仅归档留底,勿在此执行。 -- 口径:ower_id=登录用户(=security_user.user_name),仅计非目录行(is_directory_indc='N'),file_size 单位 KB,SUM 转 SIGNED 防 int 溢出。 -- MySQL DDL: -- CREATE OR REPLACE VIEW dms_file_usage_view AS -- SELECT ower_id, -- COUNT(*) AS file_count, -- CAST(SUM(CASE WHEN is_directory_indc='N' THEN file_size ELSE 0 END) AS SIGNED) AS used_kb -- FROM dms_file GROUP BY ower_id; -- ==============================================================================================