Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php 逻辑结构相同的表是否应该合成一张表?

逻辑结构相同的表是否应该合成一张表?

Jun 06, 2016 pm 08:44 PM
php Reka bentuk pangkalan data corak reka bentuk berorientasikan objek

在新公司做项目的时候, 遇到的技术领导要求将逻辑结构相同的表全部合成一张表.
例如:

<code>comment #评论表
    id
    user_id
    content
    reply_id
    add_time

message #私信表
    id
    user_id
    reply_user_id
    content
    reply_id
    add_time
</code>
Salin selepas log masuk
Salin selepas log masuk

两张表结构相同, 然后领导让结构相同的表合并, 再加一个type进行处理, 这样可以减少相同的代码. 我觉得这样不太好, 万一之后增加功能就会比较头痛, 如果是为了减少代码的话, 两张相同结构表的model继承同一个model也就可以了, 不至于要把功能不同的表合并成一张吧, 以后如果为了节约性能, 不是还得拆表?

大家是怎样认为的呢?

回复内容:

在新公司做项目的时候, 遇到的技术领导要求将逻辑结构相同的表全部合成一张表.
例如:

<code>comment #评论表
    id
    user_id
    content
    reply_id
    add_time

message #私信表
    id
    user_id
    reply_user_id
    content
    reply_id
    add_time
</code>
Salin selepas log masuk
Salin selepas log masuk

两张表结构相同, 然后领导让结构相同的表合并, 再加一个type进行处理, 这样可以减少相同的代码. 我觉得这样不太好, 万一之后增加功能就会比较头痛, 如果是为了减少代码的话, 两张相同结构表的model继承同一个model也就可以了, 不至于要把功能不同的表合并成一张吧, 以后如果为了节约性能, 不是还得拆表?

大家是怎样认为的呢?

我认为所有有关数据库设计的问题,都要从「查询」这个角度来考虑。即你要预计一下你今后会如何查询这个表,再考虑如何设计结构。

回到问题,你可以考虑一下:

  • 评论是否总是和私信一起查询
  • 是否有必要在查找私信的时候查找一遍评论
  • 评论和私信的 ID 是否有必要使用同一个序列

楼主可以反过来思考,拆表。
一些访问量比较大的站,日志标题和描述是一个表,日志内容是一个表
因为别人访问日志列表的时候不一定要看到日志内容,多的日志查询就会造成一种浪费
表的合并,我认为主要是看他们在查询时,是否需要经常一起显示,如果仅仅是为了减少代码量,这个完全没有必要吧,随着以后系统用户评论内容和私信内容的增加,势必会影响到效率

数据库的表,一般情况下代表一个业务对象,如果两个业务对象属于同一类型,只是分不同类型有个别不同的字段,可以考虑公用一张表,然后用一个type字段进行区分。

楼主的例子里面,评论和私信显然不是一个业务对象,表里面的content,reply_id虽然名称相同,但代表的业务含义完全不同,所以建议分成两张表。否则后期维护的时候非常麻烦,运维的人刚开始肯定不理解,为什么同一个字段,在数据库里面根据另外另外一个type字段有不同的含义。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles