Tạo cơ sở dữ liệu cms cakephp

Lượt xem: 51

Tạo cơ sở dữ liệu cms cakephp

Sau khi cài đặt cakephp và nắm được cấu trúc dự án cakephp. Bây giờ chúng ta tiến hành thiết lập cơ sở dữ liệu cho dự án. Nếu bạn đã làm điều đó, hãy tạo một cơ sử dữ liệu trống để sử dụng trong hướng dẫn này. Ví dụ như: cake_cms bạn có thể thực thi lệnh SQL sau để tạo các bảng cần thiết.


USE cake_cms;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(255) NOT NULL,
    slug VARCHAR(191) NOT NULL,
    body TEXT,
    published BOOLEAN DEFAULT FALSE,
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (slug),
    FOREIGN KEY user_key (user_id) REFERENCES users(id)
) CHARSET=utf8mb4;

CREATE TABLE tags (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(191),
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (title)
) CHARSET=utf8mb4;

CREATE TABLE articles_tags (
    article_id INT NOT NULL,
    tag_id INT NOT NULL,
    PRIMARY KEY (article_id, tag_id),
    FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
    FOREIGN KEY article_key(article_id) REFERENCES articles(id)
);

INSERT INTO users (email, password, created, modified)
VALUES
('cakephp@dandev.net', '123456', NOW(), NOW());

INSERT INTO articles (user_id, title, slug, body, published, created, modified)
VALUES
(1, 'Bài viết đầu tiên', 'bai-viet-dau-tien', 'Đây là bài viết đầu tiên', 1, now(), now());

Bạn có thể nhận thấy rằng bảng articles_tags sử dụng khoá chính tổng hợp. CakePHP hỗ trợ các khoá chính tổng hợp hầu như mọi nơi cho phép bạn có các lược đồ đơn giản hơn mà không thêm cột id.

Tên bảng và cột chúng tôi sử dụng không phải là tuỳ ý. Bằng cách sử dụng các quy ước đặt tên của CakePHP, chúng ta có thể tận dụng CakePHP hiệu quả hơn và tránh phải cấu hình khung. Mặc dù CakePHP đủ linh hoạt để phù hợp với hầu hết mọi lược đồ cơ sở dữ liệu, việc tuân thủ các quy ước sẽ giúp bạn tiết kiệm thời gian vì bạn có thể tận dụng quy ước mặc định mà CakePHP cung cấp.

Nguồn https://book.cakephp.org/3.0/en/quickstart.html

Xem nhiều nhất