Pertanyaan Table Naming Dilemma: Singular vs. Plural Names [tertutup]


Akademisi mengatakan bahwa nama tabel harus menjadi entitas tunggal yang mereka simpan atribut.

Saya tidak menyukai T-SQL yang membutuhkan tanda kurung di sekitar nama, tetapi saya telah mengganti nama Users meja untuk tunggal, selamanya menghukum mereka yang menggunakan meja untuk kadang-kadang harus menggunakan tanda kurung.

Firasat saya adalah bahwa lebih tepat untuk tetap dengan bentuk tunggal, tetapi naluri saya juga bahwa tanda kurung mengindikasikan tidak diinginkan seperti nama kolom dengan spasi di dalamnya, dll.

Haruskah saya tinggal, atau saya harus pergi?


1171


asal


Jawaban:


Orang lain telah memberikan jawaban yang cukup baik sejauh "standar" pergi, tapi saya hanya ingin menambahkan ini ... Apakah mungkin bahwa "Pengguna" (atau "Pengguna") sebenarnya bukan deskripsi lengkap dari data yang ada dalam tabel ? Bukan berarti Anda harus terlalu gila dengan nama dan kekhususan tabel, tapi mungkin sesuatu seperti "Widget_Users" (di mana "Widget" adalah nama aplikasi atau situs web Anda) akan lebih tepat.


206



Saya memiliki pertanyaan yang sama, dan setelah membaca semua jawaban di sini saya pasti tinggal dengan TUNGGAL, alasan:

Alasan 1 (Konsep). Anda bisa memikirkan tas berisi apel seperti "AppleBag", tidak masalah jika mengandung 0, 1 atau satu juta apel, itu selalu tas yang sama. Tabel hanya itu, kontainer, nama tabel harus menggambarkan apa yang dikandungnya, bukan berapa banyak data yang dikandungnya. Selain itu, konsep jamak lebih tentang bahasa lisan (sebenarnya untuk menentukan apakah ada satu atau lebih).

Alasan 2. (Kenyamanan). lebih mudah keluar dengan nama-nama tunggal, daripada dengan yang jamak. Objek dapat memiliki bentuk jamak yang tidak biasa atau tidak jamak sama sekali, tetapi akan selalu memiliki satu tunggal (dengan beberapa pengecualian seperti Berita).

  • Pelanggan
  • Memesan
  • Pengguna
  • Status
  • Berita

Alasan 3. (Estetika dan Ketertiban). Khususnya dalam skenario master-detail, ini membaca lebih baik, selaras lebih baik dengan nama, dan memiliki urutan yang lebih logis (Master pertama, Detail kedua):

  • 1.Order
  • 2.OrderDetail

Dibandingkan dengan:

  • 1.OrderDetails
  • 2.Order

Alasan 4 (Kesederhanaan). Menyatukan semua, Nama Tabel, Kunci Utama, Hubungan, Kelas Entitas ... lebih baik untuk hanya mengetahui satu nama (tunggal), bukan dua (kelas tunggal, tabel jamak, bidang tunggal, master-detail jamak tunggal .. .)

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

Setelah Anda tahu bahwa Anda berurusan dengan "Pelanggan", Anda dapat yakin bahwa Anda akan menggunakan kata yang sama untuk semua kebutuhan interaksi basis data Anda.

Alasan 5. (Globalisasi). Dunia semakin kecil, Anda mungkin memiliki tim kebangsaan yang berbeda, tidak semua orang memiliki bahasa Inggris sebagai bahasa asli. Akan lebih mudah bagi programmer bahasa Inggris non-pribumi untuk memikirkan "Repositori" daripada "Repositories", atau "Status" bukan "Status". Memiliki nama tunggal dapat menyebabkan lebih sedikit kesalahan yang disebabkan oleh kesalahan ketik, menghemat waktu dengan tidak harus berpikir "apakah itu Anak atau Anak-Anak?", Maka meningkatkan produktivitas.

Alasan 6. (Kenapa tidak?). Ia bahkan dapat menghemat waktu penulisan Anda, menghemat ruang disk, dan bahkan membuat keyboard komputer Anda bertahan lebih lama!

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100

Anda telah menyimpan 3 huruf, 3 byte, 3 klik keyboard tambahan :)

Dan akhirnya, Anda dapat menamai orang-orang yang mengacau dengan nama yang dipesan seperti:

  • Pengguna> LoginUser, AppUser, SystemUser, CMSUser, ...

Atau gunakan kurung kotak terkenal [Pengguna]


1385



Jika Anda menggunakan alat Pemetaan Relasional Objek atau akan di masa depan saya sarankan Tunggal.

Beberapa alat seperti LLBLGen dapat secara otomatis memperbaiki nama jamak seperti Pengguna ke Pengguna tanpa mengubah nama tabel itu sendiri. Mengapa ini penting? Karena ketika dipetakan, Anda ingin tampilannya seperti User.Name, bukan Users.Name atau lebih buruk dari beberapa tabel database lama saya yang menamai tblUsers.strName yang hanya membingungkan dalam kode.

Aturan praktis baru saya adalah menilai bagaimana tampilannya setelah diubah menjadi objek.

satu meja yang saya temukan yang tidak sesuai dengan penamaan baru yang saya gunakan adalah UsersInRoles. Tetapi akan selalu ada beberapa pengecualian dan bahkan dalam kasus ini terlihat baik-baik saja sebagai UsersInRoles.Username.


242



Saya lebih suka menggunakan tidak terpengaruh kata benda, yang dalam bahasa Inggris kebetulan menjadi tunggal.

Mengalihkan nomor nama tabel menyebabkan masalah ortografi (seperti yang ditunjukkan oleh banyak jawaban lainnya), tetapi memilih untuk melakukannya karena tabel biasanya berisi beberapa baris juga semantis penuh lubang. Ini lebih jelas jika kita mempertimbangkan bahasa yang mempengaruhi kata benda berdasarkan kasus (seperti kebanyakan):

Karena kita biasanya melakukan sesuatu dengan baris, mengapa tidak memasukkan nama dalam kasus accusative? Jika kita memiliki tabel yang kita tulis lebih dari yang kita baca, mengapa tidak mencantumkan nama di dalam kata datif? Ini meja dari sesuatu, mengapa tidak menggunakan genitive? Kami tidak akan melakukan ini, karena tabel didefinisikan sebagai wadah abstrak yang ada terlepas dari negara atau penggunaannya. Mengalihkan kata benda tanpa alasan semantik yang tepat dan mutlak adalah mengoceh.

Menggunakan kata benda yang tidak terpengaruh itu sederhana, logis, teratur dan bahasa-independen.


174



Konvensi apa yang mengharuskan tabel memiliki nama tunggal? Saya selalu berpikir itu adalah nama-nama jamak.

Seorang pengguna ditambahkan ke tabel Pengguna.

Situs ini setuju:
http://vyaskn.tripod.com/object_naming.htm#Tables

Situs ini tidak setuju (tetapi saya tidak setuju dengan itu):
http://justinsomnia.org/writings/naming_conventions.html


Seperti yang telah disebutkan orang lain: ini hanyalah pedoman. Pilih sebuah konvensi yang cocok untuk Anda dan perusahaan / proyek Anda dan ikuti terus. Berganti-ganti antara kata-kata tunggal dan jamak atau kadang-kadang menyingkat dan terkadang tidak lebih menjengkelkan.


115



Bagaimana dengan ini sebagai contoh sederhana:

SELECT Customer.Name, Customer.Address FROM Customer WHERE Customer.Name > "def"

vs.

SELECT Customers.Name, Customers.Address FROM Customers WHERE Customers.Name > "def"

SQL dalam yang terakhir terdengar asing daripada yang pertama.

Saya memilih tunggal.


55



Saya memiliki keyakinan kuat bahwa dalam Entity Relation Diagram, entitas harus tercermin dengan nama tunggal, mirip dengan nama kelas yang tunggal. Setelah dipakai, namanya mencerminkan contohnya. Jadi dengan database, entitas ketika dibuat menjadi tabel (kumpulan entitas atau catatan) adalah jamak. Entitas, Pengguna dibuat ke Pengguna tabel. Saya setuju dengan orang lain yang menyarankan mungkin nama Pengguna dapat ditingkatkan menjadi Karyawan atau sesuatu yang lebih sesuai dengan skenario Anda.

Ini kemudian lebih masuk akal dalam pernyataan SQL karena Anda memilih dari sekelompok catatan dan jika nama tabel tunggal, itu tidak membaca dengan baik.


53



Saya tetap dengan tunggal untuk nama tabel dan entitas program apa pun.

Alasannya? Fakta bahwa ada bentuk jamak tidak beraturan dalam bahasa Inggris seperti tikus. tikus dan domba ⇒ domba. Kemudian, jika saya membutuhkan koleksi, saya hanya menggunakan tikus atau domba-domba, dan lanjutkan.

Ini benar-benar membantu kemajemukan menonjol, dan saya dapat dengan mudah dan programatik menentukan seperti apa koleksi itu nantinya.

Jadi, aturan saya adalah: semuanya tunggal, setiap kumpulan benda adalah tunggal dengan s ditambahkan. Membantu dengan ORM juga.


35