- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发 web 应用程序,我必须像 facebook 那样实现“喜欢”系统。应用程序将包含客户可以“喜欢”的几类产品。所以我开始创建数据库,但遇到了一个障碍。据我了解,有两种方法可以做到这一点:
首先。创建一张数据库表,字段为“id, user_id, item_category, item_id”。当用户点击“喜欢”按钮时,信息将与各种产品类别 (item_category) 一起保存在此表中。
其次。为某些类别的项目创建多个表。例如,“tbl_item_category_1、tbl_item_category_2、tbl_item_category_3”字段为“user_id、item_id”。
如果能更深入地了解此类数据库结构的最佳实践,那就太好了。哪个工作得更快?更合乎逻辑/更实际?我将只使用几类元素。
câu trả lời hay nhất
我会选择第一个版本,表结构与此类似:
User Table: PK id
nhận dạng
tên người dùng
Category Table: PK id
nhận dạng
categoryname
Like Table: PK both user_id and catgory_id
user_id
category_id
đây là mộtSQL Fiddle带有表结构演示和两个示例查询,以按用户和按类别提供总喜欢数
第二个 - 创建多个表是个糟糕的主意。如果您有 50-100 个类别,则尝试查询这些表会很糟糕。它将变得完全无法控制。
如果你有多个表试图获得一个总喜欢数将是:
Select count(*)
from category_1
JOIN category_2
ON userid = userid
join category_3
ON userid = userid
join .....
毫无疑问,使用一张 table 。
关于mysql - “喜欢”系统数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832006/
Tôi hiện đang xây dựng một hệ thống mạng khá lớn và tôi cần một giải pháp cơ sở dữ liệu SQL mạnh mẽ. Tôi đã chọn Mysql thay vì Postgres vì một số tác vụ yêu cầu chỉ đọc (công cụ MyISAM) và các tác vụ khác yêu cầu mức độ ghi nhiều (InnoDB).
Tôi sử dụng lệnh sau trong mysql. Khi nó hiển thị dữ liệu dạng bảng, nó được định dạng thành một bảng rất rõ ràng với khoảng cách đều nhau và | làm dấu phân cách cột. CHỌN * TỪ TABLE_NAME Khi tôi chạy lệnh từ CLI như sau
Tôi biết câu hỏi này đã được hỏi nhiều lần trước đây và tôi đã giải quyết nó rất nhiều nhưng cho đến nay vẫn chưa có kết quả nào. Chắc chắn có lỗi gì đó với thư mục mà MySQL đang cố cài đặt vào (usr/local/mysql). Điều kỳ lạ về lỗi lầm của tôi là tôi
Dưới đây là cấu trúc dữ liệu SQL của tôi và tôi đang thử hai truy vấn như sau: Chọn Wrk_ID, Wrk_LastName, Skill_Desc từ Worker, Skill ở đâu
Chúng tôi có một máy chủ mysql cục bộ (không phải trên miền công cộng) và muốn sao chép nó sang phiên bản sql trên đám mây của Google mà chúng tôi có. Câu hỏi của tôi là: 1. Điều này có thể thực hiện được không? 2. Máy chủ cục bộ của chúng tôi chỉ có thể truy cập được trên mạng cục bộ
Tôi có một bảng (test_table) trong đó một số giá trị trường (chẳng hạn như trường A, B và C) được chèn từ một ứng dụng bên ngoài và một trường (trường D) có giá trị tôi muốn chèn từ bảng hiện có ( store_table) , nhưng sau khi chèn (A, B và
Tôi muốn tạo một phiên bản AWS RDS rồi sử dụng terraform để quản lý người dùng cơ sở dữ liệu. Vì vậy, trước tiên, tôi đã tạo một phiên bản RDS và sau đó khởi tạo nhà cung cấp mysql bằng phiên bản RDS đã tạo để tiếp tục sử dụng nó cho người dùng
Khi người dùng đăng ký trên trang web của tôi, họ sẽ tạo bảng riêng của họ trong một trong các cơ sở dữ liệu của tôi. Bảng này lưu trữ tất cả các bài viết được thực hiện bởi người dùng. Điều tôi cũng muốn làm là tạo người dùng MySql của riêng họ cho họ - người dùng này chỉ có quyền đọc, viết và xóa khỏi bảng của họ. Tạo nó nên
Tôi có câu hỏi về ColdFusion và Mysql. Tôi có hai bảng: product và product_CAT. Tôi muốn liệt kê các danh mục chứa một số sản phẩm đặc biệt được đánh dấu bằng :IS_EXTRANET=1. Vì vậy tôi đã viết cái này
Tôi muốn lấy giá trị của cột công thức nấu ăn_id để nhận giá trị của các mục 2,17 và 26 chứa thành phần_id. Nếu thành phần_id 2 bị mất, sẽ không thu được bản ghi nào. Tôi đã thử toán tử IN
Trong Ubuntu, tôi thường cài đặt cả hai, nhưng sự khác biệt giữa máy khách và máy chủ MySQL là gì. Như một phần thưởng, khi một tuyên bố mới đề cập rằng nó yêu cầu MySQL 5.x, điều đó có nghĩa là máy khách, máy chủ hay cả hai. Ví dụ như link này ht
Tôi đã xem lại cơ sở dữ liệu của mình và nhận thấy rằng tôi có một số khóa chính thuộc loại INT. Điều đó không đủ độc đáo nên tôi nghĩ tôi sẽ có một người hướng dẫn. Tôi đến từ nền tảng Microsoft sql, trong ssms bạn có thể chọn loại "uniqeidentifier" và tự động
Tôi có MySQL trên hệ thống của mình và tôi đang cố xác định xem đó là Oracle MySQL hay MySQL. Có sự khác biệt nào với Oracle MySQL không: http://www.oracle.com/us/products/m
Tôi là người mới bảo trì một ứng dụng đang chạy trong MySQL sản xuất. Người bảo trì trước đã rời đi, để lại ít tài liệu và không thể liên lạc được. Vấn đề tôi gặp phải là phải mất khoảng 10 giây để thực hiện yêu cầu sau: CHỌN COUNT(*) TỪ `
Tôi có hai cơ sở dữ liệu MySQL nằm trên các máy khác nhau. Tôi muốn tự động chuyển dữ liệu từ máy chủ này sang máy chủ khác. Giả sử tôi muốn quá trình truyền dữ liệu diễn ra vào lúc 4 giờ sáng hàng ngày. Tôi có thể không? Có chức năng tích hợp nào của MySQL cho phép chúng tôi thực hiện việc này không
Có cách nào để sử dụng jdbc để truy vấn các bảng mysql nằm trong một thư mục bên ngoài thư mục gốc mysql hay tôi phải di chuyển chúng đến thư mục cơ sở dữ liệu trong thư mục gốc mysql? Tôi không tìm thấy bất cứ điều gì khi tôi tìm kiếm trên Google. hầu hết
Tôi có hai bảng trong cơ sở dữ liệu mysql. Các thành viên và số lớp. Cả hai bảng đều có trường năm trả phí và cả hai bảng đều có trường mã. Tôi muốn cập nhật năm thanh toán trong bảng thành viên với giá trị từ bảng số mã trong đó mã trong thành viên giống với ClassNumb
Tình huống: Tôi có 2 máy chủ, một trong số đó hiện đang lưu trữ một trang WordPress trực tiếp và tôi muốn có thể di chuyển trang này sang một máy chủ khác trong trường hợp máy chủ đầu tiên bị lỗi. Việc chuyển các tập tin nguồn thật dễ dàng; việc chuyển cơ sở dữ liệu là điều tôi cần tìm ra cách thực hiện. Hai máy chủ
Phpmyadmin có chức năng "sao chép cơ sở dữ liệu vào".. Có truy vấn mysql nào để viết chức năng này không? Tương tự như copy db A sang db B mới. Câu trả lời hay nhất Tạo cơ sở dữ liệu sao chép trước: TẠO CƠ SỞ DỮ LIỆU du
Tôi có một phần mềm kiểm kê sử dụng mySQL làm chương trình phụ trợ. Tôi đã thử nó trên máy tính của tôi và nó hoạt động tốt. Khi cài đặt phần mềm vào máy tính, tôi phải thực hiện các bước sau: Cài đặt máy chủ mySQL Chỉ định tên người dùng là "root
Tôi là một lập trình viên xuất sắc, rất giỏi!