数据库设计 – 文章,博客文章,照片,故事

我正在为一个网站设计一个数据库,这个数据库至少有4种不同的对象类型(文章,博客文章,照片,故事),每一个都有不同的数据需求来保证他们自己的表格。 我们希望用户能够发表任何这些类型的评论。 评论的数据要求很简单,与评论所关注的事物的类型无关(即仅仅是一个评论机构和作者的电子邮件)。 我想避免冗余创建和管理4个以上的独立表的注释,所以我想能够在一个表中保留所有的注释,可能通过2列指定关系:一个指定父实体和一个为父行Id。 但我不明白怎么做,那么我会实现外键,因为外键建立2和2表(右?)之间的关系。 所有这一切,最好的办法是什么?

如何从GCC / clang程序集输出中删除“噪音”?

我想检查在我的代码中应用boost::variant的程序集输出,以查看哪些中间调用被优化了。 当我编译下面的例子(GCC 5.3使用g++ -O3 -std=c++14 -S )时,好像编译器优化了所有东西,直接返回100: (…) main: .LFB9320: .cfi_startproc movl $100, %eax ret .cfi_endproc (…) #include <boost/variant.hpp> struct Foo { int get() { return 100; } }; struct Bar { int get() { return 999; } }; using Variant = boost::variant<Foo, Bar>; int run(Variant v) { return boost::apply_visitor([](auto& x){return x.get();}, v); } int […]

Firefox更新后无法使用Selenium打开浏览器

我在Ubuntu Desktop 16.04上使用Selenium WebDriver,并且无法打开浏览器。 Firefox更新后出现以下错误(在此之前,它一切正常): Traceback (most recent call last): File "test.py", line 6, in <module> driver = webdriver.Firefox() File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 81, in __init__ self.binary, timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 51, in __init__ self.binary.launch_browser(self.profile, timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser self._wait_until_connectable(timeout=timeout) File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 98, in _wait_until_connectable raise WebDriverException("The browser appears to have exited […]

Python初始化列表的列表

可能重复: Python列表追加行为 我打算初始化长度为n的列表。 x = [[]] * n 但是,这不知何故将列表链接在一起。 >>> x = [[]] * 3 >>> x[1].append(0) >>> x [[0], [0], [0]] 我希望有这样的东西: [[], [0], []] 有任何想法吗?

HTML选择框的高度(下拉菜单)

有人可以确认无法更改单击选择框时显示的下拉菜单的高度。 选择的大小属性使它看起来像一个列表,CSS中的高度属性也没有太大的好处。

排序可能包含数字的字符串

我需要编写一个比较字符串的Java比较器类,然而只有一个转折点。 如果它比较的两个字符串在字符串的开头和末尾是相同的,并且不同的中间部分是一个整数,则根据这些整数的数字值进行比较。 例如,我需要下列字符串才能显示出来: AAA bbb 3 ccc bbb 12 ccc ccc 11 DDD eee 3 ddd jpeg2000 eee eee 12 ddd jpeg2000 eee 正如你所看到的,字符串中可能还有其他整数,所以我不能只用正则表达式来分解任何整数。 我想从一开始就走字符串,直到找到一个不匹配的位,然后从最后走到最后找到一个不匹配的位,然后比较中间位和正则表达式“[0-9] +”,如果比较,则进行数字比较,否则进行词法比较。 有没有更好的办法? 更新我不认为我可以保证字符串中的其他数字,可以匹配的数字,周围没有空格,或者不同的数字有空格。

如何添加一个超时Console.ReadLine()?

我有一个控制台应用程序,我想让用户x秒响应提示。 如果在一段时间后没有输入,程序逻辑应该继续。 我们假设超时意味着空的回应。 什么是最直接的方法来解决这个问题?

JavaScript中多个数组的笛卡尔积

你将如何在JavaScript中实现多个数组的笛卡尔积? 举个例子, cartesian([1,2],[10,20],[100,200,300]) //should be // [[1,10,100],[1,10,200],[1,10,300],[2,10,100],[2,10,200]…]

在更新到新的Firebase之后获取Exception java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

我已经更新我的应用程序使用这个新的firebase,现在当我编译我的项目,我得到以下异常。 这是我的logcat: 11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.dayshift_2.traveyy, PID: 27844 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions at com.google.firebase.FirebaseApp.zzbu(Unknown Source) at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1591) at android.content.ContentProvider.attachInfo(ContentProvider.java:1562) at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) at android.app.ActivityThread.installProvider(ActivityThread.java:4871) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406) at android.app.ActivityThread.access$1500(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5102) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method) […]

Eclipse发生错误,在最近更新之后丢失了R.java文件

我已经更新了我的SDK和ADT到最新版本,我也将Eclipse更新到Kepler Juno后的最新版本。 我的ADT版本是22.0 。 在此更新之后,当我创建一个新项目时,出现错误,说明R cannot be resolved to a variable 。 我已经导入import android.R; ,但显示为未使用的导入说明Don't include android.R here; use a fully qualified name for each usage instead Don't include android.R here; use a fully qualified name for each usage instead 。 与Mac OS一样,最新的更新也是如此。 我已经尝试将activity_main.xml重命名为其他名称,但仍未生成R.java 。 尝试了所有可能的事情。 清理项目,建立整个工作空间。 没有帮助。 我认为ADT或Eclipse兼容性更新后有问题。 我已经更新了我的整个SDK,这里是截图,但同样的问题在那里。