0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paiza.ioでmysql その17

Posted at

概要

paiza.ioでmysqlやってみた。
練習問題やってみた。

練習問題

データーベース設計せよ。

サンプルコード


-- ユーザー管理
create table users (
    email varchar(255) NOT NULL,
    encrypted_password varchar(10) NOT NULL,
    reset_password_token varchar(10),
    reset_password_sent_at datetime,
    remember_created_at datetime,
    name varchar(40),
    user_id integer,
    introduction text,
    profile_image_id varchar(10),
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- アセット機能
create table books (
    title varchar(255),
    body text,
    user_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- いいね機能
create table favorites (
    user_id integer,
    book_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- コメント機能
create table book_comments (
    comment text,
    user_id integer,
    book_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- フォロー機能
create table relationships (
    follower_id integer,
    followed_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- アドレス機能
create table adrresses (
    user_id integer,
    target_user_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- メール機能
create table mail (
    from_user_id integer,
    to_user_id integer,
    title varchar(255),
    body text,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- チャット機能
create table caht_rooms (
    chat_room_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
create table chat_room_users (
    chat_room_id integer,
    user_id integer,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
create table chat_messages (
    chat_room_id integer,
    user_id integer,
    body text,
    created_at datetime NOT NULL,
    updated_at datetime NOT NULL
);
-- ポイント機能
create table point (
    name varchar(40),
    user_id integer,
    point integer
);
-- bbs
CREATE TABLE myposts (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    comment VARCHAR(100) NOT NULL,
    create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);
CREATE TABLE list (
    id INTEGER PRIMARY KEY, 
    dbname TEXT, 
    dbnamekana TEXT, 
    kensu INTEGER, 
    updtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, 
    flg INTEGER DEFAULT 0
);
-- bbs
CREATE TABLE `boards`( 
    `id`   integer PRIMARY KEY, 
    `name` TEXT NOT NULL,    
    `text` TEXT NOT NULL     
);

CREATE TABLE `threads`( 
    `timestamp` INT  NOT NULL, 
    `board_id`  INT NOT NULL, 
    `title`     TEXT NOT NULL, 
    PRIMARY KEY( `timestamp`, `board_id` )
);

CREATE TABLE `posts`( 
    `id`               INTEGER PRIMARY KEY AUTO_INCREMENT,
    `board_id`         INT NOT NULL, 
    `thread_timestamp` INT  NOT NULL, 
    `posted_at`        TEXT NOT NULL, 
    `name`             TEXT NOT NULL, 
    `email`            TEXT NOT NULL, 
    `author_hash`      INT NOT NULL, 
    `message`          TEXT NOT NULL, 
    `ip_addr`          TEXT NOT NULL  
);
CREATE INDEX `post_board_thread` ON `posts`( `board_id`, `thread_timestamp` );
CREATE INDEX `post_author_hash` ON `posts`( `author_hash` ); 
-- bbs
create table IF NOT EXISTS bbs (
    id integer primary key,
    name text,
    msg text,
    bbs_date timestamp);
-- bbs
create table mposts (
    id int auto_increment,
    post varchar(255) not null,
    primary key (id)
);
-- bbs
create table article (
    article_id integer primary key auto_increment,
    title text not null,
    body text not null,
    created_at timestamp not null default current_timestamp,
    updated_at timestamp
);

create table tag (
    article_id integer not null,
    tag text not null,
    primary key(article_id)
);


成果物

以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?